xray_setting.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package controller
  2. import (
  3. "x-ui/web/service"
  4. "github.com/gin-gonic/gin"
  5. )
  6. type XraySettingController struct {
  7. XraySettingService service.XraySettingService
  8. SettingService service.SettingService
  9. InboundService service.InboundService
  10. XrayService service.XrayService
  11. }
  12. func NewXraySettingController(g *gin.RouterGroup) *XraySettingController {
  13. a := &XraySettingController{}
  14. a.initRouter(g)
  15. return a
  16. }
  17. func (a *XraySettingController) initRouter(g *gin.RouterGroup) {
  18. g = g.Group("/xray")
  19. g.POST("/", a.getXraySetting)
  20. g.POST("/update", a.updateSetting)
  21. g.GET("/getXrayResult", a.getXrayResult)
  22. g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig)
  23. }
  24. func (a *XraySettingController) getXraySetting(c *gin.Context) {
  25. xraySetting, err := a.SettingService.GetXrayConfigTemplate()
  26. if err != nil {
  27. jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err)
  28. return
  29. }
  30. inboundTags, err := a.InboundService.GetInboundTags()
  31. if err != nil {
  32. jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err)
  33. return
  34. }
  35. xrayResponse := "{ \"xraySetting\": " + xraySetting + ", \"inboundTags\": " + inboundTags + " }"
  36. jsonObj(c, xrayResponse, nil)
  37. }
  38. func (a *XraySettingController) updateSetting(c *gin.Context) {
  39. xraySetting := c.PostForm("xraySetting")
  40. err := a.XraySettingService.SaveXraySetting(xraySetting)
  41. jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err)
  42. }
  43. func (a *XraySettingController) getDefaultXrayConfig(c *gin.Context) {
  44. defaultJsonConfig, err := a.SettingService.GetDefaultXrayConfig()
  45. if err != nil {
  46. jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err)
  47. return
  48. }
  49. jsonObj(c, defaultJsonConfig, nil)
  50. }
  51. func (a *XraySettingController) getXrayResult(c *gin.Context) {
  52. jsonObj(c, a.XrayService.GetXrayResult(), nil)
  53. }