Implemented preferences endpoints for apiv4 (#5531)
* implemented preferences endpoints for apiv4 * added user id in preferences endpoints
Этот коммит содержится в:
коммит произвёл
George Goldberg
родитель
758402311a
Коммит
cef5028cbe
@@ -141,6 +141,10 @@ func (c *Client4) GetIncomingWebhooksRoute() string {
|
||||
return fmt.Sprintf("/hooks/incoming")
|
||||
}
|
||||
|
||||
func (c *Client4) GetPreferencesRoute(userId string) string {
|
||||
return fmt.Sprintf(c.GetUserRoute(userId) + "/preferences")
|
||||
}
|
||||
|
||||
func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError) {
|
||||
return c.DoApiRequest(http.MethodGet, url, "", etag)
|
||||
}
|
||||
@@ -871,3 +875,59 @@ func (c *Client4) GetIncomingWebhooksForTeam(teamId string, page int, perPage in
|
||||
return IncomingWebhookListFromJson(r.Body), BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// Preferences Section
|
||||
|
||||
// GetPreferences returns the user's preferences
|
||||
func (c *Client4) GetPreferences(userId string) (Preferences, *Response) {
|
||||
if r, err := c.DoApiGet(c.GetPreferencesRoute(userId), ""); err != nil {
|
||||
return nil, &Response{StatusCode: r.StatusCode, Error: err}
|
||||
} else {
|
||||
preferences, _ := PreferencesFromJson(r.Body)
|
||||
defer closeBody(r)
|
||||
return preferences, BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// UpdatePreferences saves the user's preferences
|
||||
func (c *Client4) UpdatePreferences(userId string, preferences *Preferences) (bool, *Response) {
|
||||
if r, err := c.DoApiPut(c.GetPreferencesRoute(userId), preferences.ToJson()); err != nil {
|
||||
return false, &Response{StatusCode: r.StatusCode, Error: err}
|
||||
} else {
|
||||
defer closeBody(r)
|
||||
return true, BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// DeletePreferences deletes the user's preferences
|
||||
func (c *Client4) DeletePreferences(userId string, preferences *Preferences) (bool, *Response) {
|
||||
if r, err := c.DoApiPost(c.GetPreferencesRoute(userId)+"/delete", preferences.ToJson()); err != nil {
|
||||
return false, &Response{StatusCode: r.StatusCode, Error: err}
|
||||
} else {
|
||||
defer closeBody(r)
|
||||
return true, BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// GetPreferencesByCategory returns the user's preferences from the provided category string
|
||||
func (c *Client4) GetPreferencesByCategory(userId string, category string) (Preferences, *Response) {
|
||||
url := fmt.Sprintf(c.GetPreferencesRoute(userId)+"/%s", category)
|
||||
if r, err := c.DoApiGet(url, ""); err != nil {
|
||||
return nil, &Response{StatusCode: r.StatusCode, Error: err}
|
||||
} else {
|
||||
preferences, _ := PreferencesFromJson(r.Body)
|
||||
defer closeBody(r)
|
||||
return preferences, BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// GetPreferenceByCategoryAndName returns the user's preferences from the provided category and preference name string
|
||||
func (c *Client4) GetPreferenceByCategoryAndName(userId string, category string, preferenceName string) (*Preference, *Response) {
|
||||
url := fmt.Sprintf(c.GetPreferencesRoute(userId)+"/%s/name/%v", category, preferenceName)
|
||||
if r, err := c.DoApiGet(url, ""); err != nil {
|
||||
return nil, &Response{StatusCode: r.StatusCode, Error: err}
|
||||
} else {
|
||||
defer closeBody(r)
|
||||
return PreferenceFromJson(r.Body), BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user