diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-03-24 16:45:34 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-03-24 13:45:34 -0700 |
commit | 28a78d76074749a3b7f1ef2a56617b0a1c7fd623 (patch) | |
tree | 4adc9c167991a9cea04fa9cc3c01e247a50293c8 /model/channel.go | |
parent | 22715a31ed6238eb4f8f0dd8125bf23958345e78 (diff) | |
download | chat-28a78d76074749a3b7f1ef2a56617b0a1c7fd623.tar.gz chat-28a78d76074749a3b7f1ef2a56617b0a1c7fd623.tar.bz2 chat-28a78d76074749a3b7f1ef2a56617b0a1c7fd623.zip |
Implement some channel endpoints for APIv4 (#5846)
* Add v4 endpoint for getting the channels on a team for a user
* Implement PUT /channels/{channel_id}/patch endpoint for APIv4
* Implement POST /teams/{team_id}/channels/search endpoint for APIv4
* Update permission check
Diffstat (limited to 'model/channel.go')
-rw-r--r-- | model/channel.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/model/channel.go b/model/channel.go index d24fdb2b4..d80674444 100644 --- a/model/channel.go +++ b/model/channel.go @@ -46,6 +46,13 @@ type Channel struct { CreatorId string `json:"creator_id"` } +type ChannelPatch struct { + DisplayName *string `json:"display_name"` + Name *string `json:"name"` + Header *string `json:"header"` + Purpose *string `json:"purpose"` +} + func (o *Channel) ToJson() string { b, err := json.Marshal(o) if err != nil { @@ -55,6 +62,15 @@ func (o *Channel) ToJson() string { } } +func (o *ChannelPatch) ToJson() string { + b, err := json.Marshal(o) + if err != nil { + return "" + } else { + return string(b) + } +} + func ChannelFromJson(data io.Reader) *Channel { decoder := json.NewDecoder(data) var o Channel @@ -66,6 +82,17 @@ func ChannelFromJson(data io.Reader) *Channel { } } +func ChannelPatchFromJson(data io.Reader) *ChannelPatch { + decoder := json.NewDecoder(data) + var o ChannelPatch + err := decoder.Decode(&o) + if err == nil { + return &o + } else { + return nil + } +} + func (o *Channel) Etag() string { return Etag(o.Id, o.UpdateAt) } @@ -137,6 +164,24 @@ func (o *Channel) IsGroupOrDirect() bool { return o.Type == CHANNEL_DIRECT || o.Type == CHANNEL_GROUP } +func (o *Channel) Patch(patch *ChannelPatch) { + if patch.DisplayName != nil { + o.DisplayName = *patch.DisplayName + } + + if patch.Name != nil { + o.Name = *patch.Name + } + + if patch.Header != nil { + o.Header = *patch.Header + } + + if patch.Purpose != nil { + o.Purpose = *patch.Purpose + } +} + func GetDMNameFromIds(userId1, userId2 string) string { if userId1 > userId2 { return userId2 + "__" + userId1 |