MM-10182 & MM-10183: Adds channel scheme and team scheme API endpoint. (#8680)

* MM-10183: Adds channel scheme API endpoint.

MM-10182: Adds team scheme API endpoint.

MM-10182_3: Switch from scheme_id in path to body.

* MM-10182/MM-10183: Changes path from 'schemes' to 'scheme'.

* MM-10182: Fix merge error.
Этот коммит содержится в:
Martin Kraft
2018-05-02 07:31:14 -04:00
коммит произвёл GitHub
родитель d2cc0c5834
Коммит f4dcb4edf2
11 изменённых файлов: 370 добавлений и 0 удалений

Просмотреть файл

@@ -326,6 +326,14 @@ func (c *Client4) GetTimezonesRoute() string {
return fmt.Sprintf(c.GetSystemRoute() + "/timezones")
}
func (c *Client4) GetChannelSchemeRoute(channelId string) string {
return fmt.Sprintf(c.GetChannelsRoute()+"/%v/scheme", channelId)
}
func (c *Client4) GetTeamSchemeRoute(teamId string) string {
return fmt.Sprintf(c.GetTeamsRoute()+"/%v/scheme", teamId)
}
func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError) {
return c.DoApiRequest(http.MethodGet, c.ApiUrl+url, "", etag)
}
@@ -3505,3 +3513,25 @@ func (c *Client4) DeactivatePlugin(id string) (bool, *Response) {
return CheckStatusOK(r), BuildResponse(r)
}
}
// UpdateChannelScheme will update a channel's scheme.
func (c *Client4) UpdateChannelScheme(channelId, schemeId string) (bool, *Response) {
sip := &SchemeIDPatch{SchemeID: &schemeId}
if r, err := c.DoApiPut(c.GetChannelSchemeRoute(channelId), sip.ToJson()); err != nil {
return false, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
return CheckStatusOK(r), BuildResponse(r)
}
}
// UpdateTeamScheme will update a team's scheme.
func (c *Client4) UpdateTeamScheme(teamId, schemeId string) (bool, *Response) {
sip := &SchemeIDPatch{SchemeID: &schemeId}
if r, err := c.DoApiPut(c.GetTeamSchemeRoute(teamId), sip.ToJson()); err != nil {
return false, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
return CheckStatusOK(r), BuildResponse(r)
}
}

Просмотреть файл

@@ -29,6 +29,10 @@ type Scheme struct {
DefaultChannelUserRole string `json:"default_channel_user_role"`
}
type SchemeIDPatch struct {
SchemeID *string `json:"scheme_id"`
}
func (scheme *Scheme) ToJson() string {
b, _ := json.Marshal(scheme)
return string(b)
@@ -93,3 +97,14 @@ func (scheme *Scheme) IsValidForCreate() bool {
return true
}
func SchemeIDFromJson(data io.Reader) *string {
var p *SchemeIDPatch
json.NewDecoder(data).Decode(&p)
return p.SchemeID
}
func (p *SchemeIDPatch) ToJson() string {
b, _ := json.Marshal(p)
return string(b)
}