diff options
author | JoramWilander <jwawilander@gmail.com> | 2015-10-22 14:27:47 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2015-10-22 14:27:47 -0400 |
commit | a431ba2c22918412d90d00c37fb89f6841f47eb8 (patch) | |
tree | a97206298923b7c9972b6c7bfdbf8d6caf7edae4 /store | |
parent | 46f448899bf715fa2b557562a6a01d80ca4fc6b4 (diff) | |
download | chat-a431ba2c22918412d90d00c37fb89f6841f47eb8.tar.gz chat-a431ba2c22918412d90d00c37fb89f6841f47eb8.tar.bz2 chat-a431ba2c22918412d90d00c37fb89f6841f47eb8.zip |
Delete webhooks when the associated channel gets deleted
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_webhook_store.go | 21 | ||||
-rw-r--r-- | store/store.go | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/store/sql_webhook_store.go b/store/sql_webhook_store.go index 1910984f0..c758e2339 100644 --- a/store/sql_webhook_store.go +++ b/store/sql_webhook_store.go @@ -137,6 +137,27 @@ func (s SqlWebhookStore) GetIncomingByUser(userId string) StoreChannel { return storeChannel } +func (s SqlWebhookStore) GetIncomingByChannel(channelId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + var webhooks []*model.IncomingWebhook + + if _, err := s.GetReplica().Select(&webhooks, "SELECT * FROM IncomingWebhooks WHERE ChannelId = :ChannelId AND DeleteAt = 0", map[string]interface{}{"ChannelId": channelId}); err != nil { + result.Err = model.NewAppError("SqlWebhookStore.GetIncomingByChannel", "We couldn't get the webhooks", "channelId="+channelId+", err="+err.Error()) + } + + result.Data = webhooks + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlWebhookStore) SaveOutgoing(webhook *model.OutgoingWebhook) StoreChannel { storeChannel := make(StoreChannel) diff --git a/store/store.go b/store/store.go index 27731cee1..7259556e7 100644 --- a/store/store.go +++ b/store/store.go @@ -149,6 +149,7 @@ type WebhookStore interface { SaveIncoming(webhook *model.IncomingWebhook) StoreChannel GetIncoming(id string) StoreChannel GetIncomingByUser(userId string) StoreChannel + GetIncomingByChannel(channelId string) StoreChannel DeleteIncoming(webhookId string, time int64) StoreChannel SaveOutgoing(webhook *model.OutgoingWebhook) StoreChannel GetOutgoing(id string) StoreChannel |