diff options
author | Reed Garmsen <rgarmsen2295@gmail.com> | 2015-07-06 17:57:36 -0700 |
---|---|---|
committer | Reed Garmsen <rgarmsen2295@gmail.com> | 2015-07-06 17:57:36 -0700 |
commit | f839b6349645ad2dc021425a806f20243d15ed0d (patch) | |
tree | 2e9caa49cbd59837aa960c53388781f9f365691f /store | |
parent | 2a0516f1fd66e3e815f4356caac8eb641519474a (diff) | |
download | chat-f839b6349645ad2dc021425a806f20243d15ed0d.tar.gz chat-f839b6349645ad2dc021425a806f20243d15ed0d.tar.bz2 chat-f839b6349645ad2dc021425a806f20243d15ed0d.zip |
Added new error message when trying to add a channel that was previously deleted as well as a corresponding unit test
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_channel_store.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/store/sql_channel_store.go b/store/sql_channel_store.go index 463fce16f..d61fbcdd0 100644 --- a/store/sql_channel_store.go +++ b/store/sql_channel_store.go @@ -79,7 +79,13 @@ func (s SqlChannelStore) Save(channel *model.Channel) StoreChannel { if err := s.GetMaster().Insert(channel); err != nil { if strings.Contains(err.Error(), "Duplicate entry") && strings.Contains(err.Error(), "for key 'Name'") { - result.Err = model.NewAppError("SqlChannelStore.Save", "A channel with that name already exists", "id="+channel.Id+", "+err.Error()) + dupChannel := model.Channel{} + s.GetReplica().SelectOne(&dupChannel, "SELECT * FROM Channels WHERE TeamId=? AND Name=? AND DeleteAt > 0", channel.TeamId, channel.Name) + if (dupChannel.DeleteAt > 0) { + result.Err = model.NewAppError("SqlChannelStore.Update", "A channel with that name was previously created", "id="+channel.Id+", "+err.Error()) + } else { + result.Err = model.NewAppError("SqlChannelStore.Update", "A channel with that name already exists", "id="+channel.Id+", "+err.Error()) + } } else { result.Err = model.NewAppError("SqlChannelStore.Save", "We couldn't save the channel", "id="+channel.Id+", "+err.Error()) } @@ -111,7 +117,13 @@ func (s SqlChannelStore) Update(channel *model.Channel) StoreChannel { if count, err := s.GetMaster().Update(channel); err != nil { if strings.Contains(err.Error(), "Duplicate entry") && strings.Contains(err.Error(), "for key 'Name'") { - result.Err = model.NewAppError("SqlChannelStore.Update", "A channel with that name already exists", "id="+channel.Id+", "+err.Error()) + dupChannel := model.Channel{} + s.GetReplica().SelectOne(&dupChannel, "SELECT * FROM Channels WHERE TeamId=? AND Name=? AND DeleteAt > 0", channel.TeamId, channel.Name) + if (dupChannel.DeleteAt > 0) { + result.Err = model.NewAppError("SqlChannelStore.Update", "A channel with that name was previously created", "id="+channel.Id+", "+err.Error()) + } else { + result.Err = model.NewAppError("SqlChannelStore.Update", "A channel with that name already exists", "id="+channel.Id+", "+err.Error()) + } } else { result.Err = model.NewAppError("SqlChannelStore.Update", "We encounted an error updating the channel", "id="+channel.Id+", "+err.Error()) } |