package controller import ( "x-ui/web/service" "github.com/gin-gonic/gin" ) type XraySettingController struct { XraySettingService service.XraySettingService SettingService service.SettingService } func NewXraySettingController(g *gin.RouterGroup) *XraySettingController { a := &XraySettingController{} a.initRouter(g) return a } func (a *XraySettingController) initRouter(g *gin.RouterGroup) { g = g.Group("/xray") g.POST("/", a.getXraySetting) g.POST("/update", a.updateSetting) g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig) } func (a *XraySettingController) getXraySetting(c *gin.Context) { xraySetting, err := a.SettingService.GetXrayConfigTemplate() if err != nil { jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } jsonObj(c, xraySetting, nil) } func (a *XraySettingController) updateSetting(c *gin.Context) { xraySetting := c.PostForm("xraySetting") err := a.XraySettingService.SaveXraySetting(xraySetting) jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) } func (a *XraySettingController) getDefaultXrayConfig(c *gin.Context) { defaultJsonConfig, err := a.SettingService.GetDefaultXrayConfig() if err != nil { jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } jsonObj(c, defaultJsonConfig, nil) }