diff options
author | Corey Hulen <corey@hulen.com> | 2017-08-22 10:20:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-22 10:20:54 -0700 |
commit | b0e367b19249e72748e719b7ff69671db3656e25 (patch) | |
tree | a0a53d33033f2830b7b53abbdb89ed8f2a8f6203 /model | |
parent | 1ce079d2d04442fb91485e88cbda67ebf260a9e8 (diff) | |
download | chat-b0e367b19249e72748e719b7ff69671db3656e25.tar.gz chat-b0e367b19249e72748e719b7ff69671db3656e25.tar.bz2 chat-b0e367b19249e72748e719b7ff69671db3656e25.zip |
Fixing race in update channel (#7269)
* Fixing race in update channel
* Switching to struct copy
Diffstat (limited to 'model')
-rw-r--r-- | model/channel.go | 5 | ||||
-rw-r--r-- | model/channel_test.go | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/model/channel.go b/model/channel.go index 50d487557..48abd1070 100644 --- a/model/channel.go +++ b/model/channel.go @@ -53,6 +53,11 @@ type ChannelPatch struct { Purpose *string `json:"purpose"` } +func (o *Channel) DeepCopy() *Channel { + copy := *o + return © +} + func (o *Channel) ToJson() string { b, err := json.Marshal(o) if err != nil { diff --git a/model/channel_test.go b/model/channel_test.go index ee6a70b0d..ed6aed919 100644 --- a/model/channel_test.go +++ b/model/channel_test.go @@ -27,6 +27,15 @@ func TestChannelJson(t *testing.T) { } } +func TestChannelCopy(t *testing.T) { + o := Channel{Id: NewId(), Name: NewId()} + ro := o.DeepCopy() + + if o.Id != ro.Id { + t.Fatal("Ids do not match") + } +} + func TestChannelPatch(t *testing.T) { p := &ChannelPatch{Name: new(string), DisplayName: new(string), Header: new(string), Purpose: new(string)} *p.Name = NewId() |