diff --git a/ombi/ombi.go b/ombi/ombi.go index 839e402..29a6e1c 100644 --- a/ombi/ombi.go +++ b/ombi/ombi.go @@ -86,7 +86,7 @@ func (ombi *Ombi) getJSON(url string, params map[string]string) (string, int, er } // does a POST and optionally returns response as string. Returns a string instead of an io.reader bcs i couldn't get it working otherwise. -func (ombi *Ombi) send(mode string, url string, data interface{}, response bool) (string, int, error) { +func (ombi *Ombi) send(mode string, url string, data interface{}, response bool, headers map[string]string) (string, int, error) { responseText := "" params, _ := json.Marshal(data) req, _ := http.NewRequest(mode, url, bytes.NewBuffer(params)) @@ -94,6 +94,9 @@ func (ombi *Ombi) send(mode string, url string, data interface{}, response bool) for name, value := range ombi.header { req.Header.Add(name, value) } + for name, value := range headers { + req.Header.Add(name, value) + } resp, err := ombi.httpClient.Do(req) defer ombi.timeoutHandler() if err != nil || !(resp.StatusCode == 200 || resp.StatusCode == 201) { @@ -122,11 +125,11 @@ func (ombi *Ombi) send(mode string, url string, data interface{}, response bool) } func (ombi *Ombi) post(url string, data map[string]interface{}, response bool) (string, int, error) { - return ombi.send("POST", url, data, response) + return ombi.send("POST", url, data, response, nil) } func (ombi *Ombi) put(url string, data map[string]interface{}, response bool) (string, int, error) { - return ombi.send("PUT", url, data, response) + return ombi.send("PUT", url, data, response, nil) } // ModifyUser applies the given modified user object to the corresponding user. @@ -234,9 +237,8 @@ type NotificationPref struct { } func (ombi *Ombi) SetNotificationPrefs(user map[string]interface{}, discordID, telegramUser string) (result string, code int, err error) { - fmt.Printf("%+v\n", user) - url := fmt.Sprintf("%s/api/v1/Identity", ombi.server) id := user["id"].(string) + url := fmt.Sprintf("%s/api/v1/Identity/NotificationPreferences", ombi.server) var data []NotificationPref if discordID != "" { data = []NotificationPref{NotificationPref{NotifAgentDiscord, id, discordID, true}} @@ -244,10 +246,6 @@ func (ombi *Ombi) SetNotificationPrefs(user map[string]interface{}, discordID, t if telegramUser != "" { data = append(data, NotificationPref{NotifAgentTelegram, id, telegramUser, true}) } - if _, ok := user["user"]; !ok { - user["user"] = map[string]interface{}{} - } - user["user"].(map[string]interface{})["userNotificationPreferences"] = data - result, code, err = ombi.send("PUT", url, user, true) + result, code, err = ombi.send("POST", url, data, true, map[string]string{"UserName": user["userName"].(string)}) return }