xray_setting.go 844 B

12345678910111213141516171819202122232425262728293031
  1. package service
  2. import (
  3. _ "embed"
  4. "encoding/json"
  5. "github.com/mhsanaei/3x-ui/v2/util/common"
  6. "github.com/mhsanaei/3x-ui/v2/xray"
  7. )
  8. // XraySettingService provides business logic for Xray configuration management.
  9. // It handles validation and storage of Xray template configurations.
  10. type XraySettingService struct {
  11. SettingService
  12. }
  13. func (s *XraySettingService) SaveXraySetting(newXraySettings string) error {
  14. if err := s.CheckXrayConfig(newXraySettings); err != nil {
  15. return err
  16. }
  17. return s.SettingService.saveSetting("xrayTemplateConfig", newXraySettings)
  18. }
  19. func (s *XraySettingService) CheckXrayConfig(XrayTemplateConfig string) error {
  20. xrayConfig := &xray.Config{}
  21. err := json.Unmarshal([]byte(XrayTemplateConfig), xrayConfig)
  22. if err != nil {
  23. return common.NewError("xray template config invalid:", err)
  24. }
  25. return nil
  26. }