nginx.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package nginx
  2. import (
  3. "net/http"
  4. "github.com/0xJacky/Nginx-UI/internal/nginx"
  5. "github.com/gin-gonic/gin"
  6. "github.com/uozi-tech/cosy"
  7. )
  8. func BuildNginxConfig(c *gin.Context) {
  9. var ngxConf nginx.NgxConfig
  10. if !cosy.BindAndValid(c, &ngxConf) {
  11. return
  12. }
  13. content, err := ngxConf.BuildConfig()
  14. if err != nil {
  15. cosy.ErrHandler(c, err)
  16. return
  17. }
  18. c.JSON(http.StatusOK, gin.H{
  19. "content": content,
  20. })
  21. }
  22. func TokenizeNginxConfig(c *gin.Context) {
  23. var json struct {
  24. Content string `json:"content" binding:"required"`
  25. }
  26. if !cosy.BindAndValid(c, &json) {
  27. return
  28. }
  29. ngxConfig, err := nginx.ParseNgxConfigByContent(json.Content)
  30. if err != nil {
  31. cosy.ErrHandler(c, err)
  32. return
  33. }
  34. c.JSON(http.StatusOK, ngxConfig)
  35. }
  36. func FormatNginxConfig(c *gin.Context) {
  37. var json struct {
  38. Content string `json:"content"`
  39. }
  40. if !cosy.BindAndValid(c, &json) {
  41. return
  42. }
  43. content, err := nginx.FmtCode(json.Content)
  44. if err != nil {
  45. cosy.ErrHandler(c, err)
  46. return
  47. }
  48. c.JSON(http.StatusOK, gin.H{
  49. "content": content,
  50. })
  51. }