diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-19 11:25:38 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-19 11:25:38 +0300 |
| commit | e1132a3f416eb0a894fd2dc9aaf9e29c0d93098f (patch) | |
| tree | 60939cef5248d6d30cdf622b7481764db25d5240 /web/service | |
| parent | 4d479102ad8ecf309ec340f9e0778f1231788185 (diff) | |
bug fix
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web/service')
| -rw-r--r-- | web/service/inbound.go | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/web/service/inbound.go b/web/service/inbound.go index c3f92e5a..9fb9a5b1 100644 --- a/web/service/inbound.go +++ b/web/service/inbound.go @@ -266,11 +266,18 @@ func (s *InboundService) AddInboundClient(data *model.Inbound) error { if err != nil { return err } - existEmail, err := s.checkEmailsExistForClients(clients) + + var settings map[string]interface{} + err = json.Unmarshal([]byte(data.Settings), &settings) if err != nil { return err } + interfaceClients := settings["clients"].([]interface{}) + existEmail, err := s.checkEmailsExistForClients(clients) + if err != nil { + return err + } if existEmail != "" { return common.NewError("Duplicate email:", existEmail) } @@ -280,21 +287,18 @@ func (s *InboundService) AddInboundClient(data *model.Inbound) error { return err } - var settings map[string]interface{} - err = json.Unmarshal([]byte(oldInbound.Settings), &settings) + var oldSettings map[string]interface{} + err = json.Unmarshal([]byte(oldInbound.Settings), &oldSettings) if err != nil { return err } - oldClients := settings["clients"].([]interface{}) - var newClients []interface{} - for _, client := range clients { - newClients = append(newClients, client) - } + oldClients := oldSettings["clients"].([]interface{}) + oldClients = append(oldClients, interfaceClients...) - settings["clients"] = append(oldClients, newClients...) + oldSettings["clients"] = oldClients - newSettings, err := json.MarshalIndent(settings, "", " ") + newSettings, err := json.MarshalIndent(oldSettings, "", " ") if err != nil { return err } @@ -341,6 +345,14 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, index int) err return err } + var settings map[string]interface{} + err = json.Unmarshal([]byte(data.Settings), &settings) + if err != nil { + return err + } + + inerfaceClients := settings["clients"].([]interface{}) + oldInbound, err := s.GetInbound(data.Id) if err != nil { return err @@ -361,20 +373,18 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, index int) err } } - var settings map[string]interface{} - err = json.Unmarshal([]byte(oldInbound.Settings), &settings) + var oldSettings map[string]interface{} + err = json.Unmarshal([]byte(oldInbound.Settings), &oldSettings) if err != nil { return err } - settingsClients := settings["clients"].([]interface{}) - var newClients []interface{} - newClients = append(newClients, clients[0]) - settingsClients[index] = newClients[0] + settingsClients := oldSettings["clients"].([]interface{}) + settingsClients[index] = inerfaceClients[0] - settings["clients"] = settingsClients + oldSettings["clients"] = settingsClients - newSettings, err := json.MarshalIndent(settings, "", " ") + newSettings, err := json.MarshalIndent(oldSettings, "", " ") if err != nil { return err } |
