diff options
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 |