Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlireza Ahmadi <alireza7@gmail.com>2023-12-04 21:20:46 +0300
committerAlireza Ahmadi <alireza7@gmail.com>2023-12-04 21:20:46 +0300
commit2a8da2ba3cbfbf7ac46e5ba7ba071588f3f2d8b5 (patch)
treee1afd8fc1521abb72bc74256c4540ad1fcce8f51 /web/service
parenta8b7063647c055988f3768a35af59ca391928b9b (diff)
separate xray page #1286
Diffstat (limited to 'web/service')
-rw-r--r--web/service/setting.go11
-rw-r--r--web/service/xraySettings.go28
2 files changed, 38 insertions, 1 deletions
diff --git a/web/service/setting.go b/web/service/setting.go
index b1565e1f..933fff1b 100644
--- a/web/service/setting.go
+++ b/web/service/setting.go
@@ -70,7 +70,7 @@ func (s *SettingService) GetDefaultJsonConfig() (interface{}, error) {
func (s *SettingService) GetAllSetting() (*entity.AllSetting, error) {
db := database.GetDB()
settings := make([]*model.Setting, 0)
- err := db.Model(model.Setting{}).Find(&settings).Error
+ err := db.Model(model.Setting{}).Not("key = ?", "xrayTemplateConfig").Find(&settings).Error
if err != nil {
return nil, err
}
@@ -426,3 +426,12 @@ func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting) error {
}
return common.Combine(errs...)
}
+
+func (s *SettingService) GetDefaultXrayConfig() (interface{}, error) {
+ var jsonData interface{}
+ err := json.Unmarshal([]byte(xrayTemplateConfig), &jsonData)
+ if err != nil {
+ return nil, err
+ }
+ return jsonData, nil
+}
diff --git a/web/service/xraySettings.go b/web/service/xraySettings.go
new file mode 100644
index 00000000..4550bde2
--- /dev/null
+++ b/web/service/xraySettings.go
@@ -0,0 +1,28 @@
+package service
+
+import (
+ _ "embed"
+ "encoding/json"
+ "x-ui/util/common"
+ "x-ui/xray"
+)
+
+type XraySettingService struct {
+ SettingService
+}
+
+func (s *XraySettingService) SaveXraySetting(newXraySettings string) error {
+ if err := s.CheckXrayConfig(newXraySettings); err != nil {
+ return err
+ }
+ return s.SettingService.saveSetting("xrayTemplateConfig", newXraySettings)
+}
+
+func (s *XraySettingService) CheckXrayConfig(XrayTemplateConfig string) error {
+ xrayConfig := &xray.Config{}
+ err := json.Unmarshal([]byte(XrayTemplateConfig), xrayConfig)
+ if err != nil {
+ return common.NewError("xray template config invalid:", err)
+ }
+ return nil
+}