environment.go 2.0 KB

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