diff options
| author | Ho3ein <ho3ein.sanaei@gmail.com> | 2023-12-10 17:42:52 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-10 17:42:52 +0300 |
| commit | e3f1d3c892a1af48f27fdc36f273a55f38d13b40 (patch) | |
| tree | b11d0c1ed3c15c8f6f891a5e6df8e021d5db8ab6 /web/controller/xray_setting.go | |
| parent | 36cf7c0a8fda915b51e75958ce729fd9a61a5c90 (diff) | |
| parent | 9fbe80f87f950673058f0001b3704251fa8b9243 (diff) | |
huge changes
Diffstat (limited to 'web/controller/xray_setting.go')
| -rw-r--r-- | web/controller/xray_setting.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/web/controller/xray_setting.go b/web/controller/xray_setting.go new file mode 100644 index 00000000..d4deacd9 --- /dev/null +++ b/web/controller/xray_setting.go @@ -0,0 +1,63 @@ +package controller + +import ( + "x-ui/web/service" + + "github.com/gin-gonic/gin" +) + +type XraySettingController struct { + XraySettingService service.XraySettingService + SettingService service.SettingService + InboundService service.InboundService + XrayService service.XrayService +} + +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("/getXrayResult", a.getXrayResult) + 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 + } + inboundTags, err := a.InboundService.GetInboundTags() + if err != nil { + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) + return + } + xrayResponse := "{ \"xraySetting\": " + xraySetting + ", \"inboundTags\": " + inboundTags + " }" + jsonObj(c, xrayResponse, 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) +} + +func (a *XraySettingController) getXrayResult(c *gin.Context) { + jsonObj(c, a.XrayService.GetXrayResult(), nil) +} |
