environment.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package api
  2. import (
  3. "github.com/0xJacky/Nginx-UI/server/internal/analytic"
  4. "github.com/0xJacky/Nginx-UI/server/internal/environment"
  5. "github.com/0xJacky/Nginx-UI/server/model"
  6. "github.com/0xJacky/Nginx-UI/server/query"
  7. "github.com/gin-gonic/gin"
  8. "github.com/spf13/cast"
  9. "net/http"
  10. )
  11. func GetEnvironment(c *gin.Context) {
  12. id := cast.ToInt(c.Param("id"))
  13. envQuery := query.Environment
  14. env, err := envQuery.FirstByID(id)
  15. if err != nil {
  16. ErrHandler(c, err)
  17. return
  18. }
  19. c.JSON(http.StatusOK, env)
  20. }
  21. func GetEnvironmentList(c *gin.Context) {
  22. data, err := environment.RetrieveEnvironmentList()
  23. if err != nil {
  24. ErrHandler(c, err)
  25. return
  26. }
  27. c.JSON(http.StatusOK, gin.H{
  28. "data": data,
  29. })
  30. }
  31. type EnvironmentManageJson struct {
  32. Name string `json:"name" binding:"required"`
  33. URL string `json:"url" binding:"required"`
  34. Token string `json:"token" binding:"required"`
  35. }
  36. func AddEnvironment(c *gin.Context) {
  37. var json EnvironmentManageJson
  38. if !BindAndValid(c, &json) {
  39. return
  40. }
  41. env := model.Environment{
  42. Name: json.Name,
  43. URL: json.URL,
  44. Token: json.Token,
  45. }
  46. envQuery := query.Environment
  47. err := envQuery.Create(&env)
  48. if err != nil {
  49. ErrHandler(c, err)
  50. return
  51. }
  52. go analytic.RestartRetrieveNodesStatus()
  53. c.JSON(http.StatusOK, env)
  54. }
  55. func EditEnvironment(c *gin.Context) {
  56. id := cast.ToInt(c.Param("id"))
  57. var json EnvironmentManageJson
  58. if !BindAndValid(c, &json) {
  59. return
  60. }
  61. envQuery := query.Environment
  62. env, err := envQuery.FirstByID(id)
  63. if err != nil {
  64. ErrHandler(c, err)
  65. return
  66. }
  67. _, err = envQuery.Where(envQuery.ID.Eq(env.ID)).Updates(&model.Environment{
  68. Name: json.Name,
  69. URL: json.URL,
  70. Token: json.Token,
  71. })
  72. if err != nil {
  73. ErrHandler(c, err)
  74. return
  75. }
  76. go analytic.RestartRetrieveNodesStatus()
  77. GetEnvironment(c)
  78. }
  79. func DeleteEnvironment(c *gin.Context) {
  80. id := cast.ToInt(c.Param("id"))
  81. envQuery := query.Environment
  82. env, err := envQuery.FirstByID(id)
  83. if err != nil {
  84. ErrHandler(c, err)
  85. return
  86. }
  87. err = envQuery.DeleteByID(env.ID)
  88. if err != nil {
  89. ErrHandler(c, err)
  90. return
  91. }
  92. go analytic.RestartRetrieveNodesStatus()
  93. c.JSON(http.StatusNoContent, nil)
  94. }