group.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package cluster
  2. import (
  3. "net/http"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/gin-gonic/gin"
  6. "github.com/uozi-tech/cosy"
  7. "gorm.io/gorm"
  8. )
  9. func GetGroup(c *gin.Context) {
  10. cosy.Core[model.EnvGroup](c).Get()
  11. }
  12. func GetGroupList(c *gin.Context) {
  13. cosy.Core[model.EnvGroup](c).GormScope(func(tx *gorm.DB) *gorm.DB {
  14. return tx.Order("order_id ASC")
  15. }).PagingList()
  16. }
  17. func ReloadNginx(c *gin.Context) {
  18. var json struct {
  19. NodeIDs []uint64 `json:"node_ids" binding:"required"`
  20. }
  21. if !cosy.BindAndValid(c, &json) {
  22. return
  23. }
  24. go syncReload(json.NodeIDs)
  25. c.JSON(http.StatusOK, gin.H{
  26. "message": "ok",
  27. })
  28. }
  29. func RestartNginx(c *gin.Context) {
  30. var json struct {
  31. NodeIDs []uint64 `json:"node_ids" binding:"required"`
  32. }
  33. if !cosy.BindAndValid(c, &json) {
  34. return
  35. }
  36. go syncRestart(json.NodeIDs)
  37. c.JSON(http.StatusOK, gin.H{
  38. "message": "ok",
  39. })
  40. }
  41. func AddGroup(c *gin.Context) {
  42. cosy.Core[model.EnvGroup](c).
  43. SetValidRules(gin.H{
  44. "name": "required",
  45. "sync_node_ids": "omitempty",
  46. }).
  47. Create()
  48. }
  49. func ModifyGroup(c *gin.Context) {
  50. cosy.Core[model.EnvGroup](c).
  51. SetValidRules(gin.H{
  52. "name": "required",
  53. "sync_node_ids": "omitempty",
  54. }).
  55. Modify()
  56. }
  57. func DeleteGroup(c *gin.Context) {
  58. cosy.Core[model.EnvGroup](c).Destroy()
  59. }
  60. func RecoverGroup(c *gin.Context) {
  61. cosy.Core[model.EnvGroup](c).Recover()
  62. }
  63. func UpdateGroupsOrder(c *gin.Context) {
  64. cosy.Core[model.EnvGroup](c).UpdateOrder()
  65. }