summaryrefslogtreecommitdiffstats
path: root/model/channel.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-24 16:45:34 -0400
committerCorey Hulen <corey@hulen.com>2017-03-24 13:45:34 -0700
commit28a78d76074749a3b7f1ef2a56617b0a1c7fd623 (patch)
tree4adc9c167991a9cea04fa9cc3c01e247a50293c8 /model/channel.go
parent22715a31ed6238eb4f8f0dd8125bf23958345e78 (diff)
downloadchat-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.go45
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