From caf0c0d375b688117da3ec844fd51cfc36db1350 Mon Sep 17 00:00:00 2001 From: Puneeth Reddy <45575072+therealpuneeth20@users.noreply.github.com> Date: Thu, 25 Apr 2019 22:44:00 -0700 Subject: [PATCH] MM 15187: Migrate "WebHook.DeleteOutgoing" to Sync by default (#10708) * cherry commit for DeleteOutgoing and generate store mocks * go fmt the code --- app/channel.go | 2 +- app/webhook.go | 6 +----- store/sqlstore/webhook_store.go | 14 +++++++------- store/store.go | 2 +- store/storetest/mocks/WebhookStore.go | 8 ++++---- store/storetest/webhook_store.go | 4 ++-- 6 files changed, 16 insertions(+), 20 deletions(-) diff --git a/app/channel.go b/app/channel.go index d79b5a2cb9..71acbe7c39 100644 --- a/app/channel.go +++ b/app/channel.go @@ -833,7 +833,7 @@ func (a *App) DeleteChannel(channel *model.Channel, userId string) *model.AppErr } for _, hook := range outgoingHooks { - if result := <-a.Srv.Store.Webhook().DeleteOutgoing(hook.Id, now); result.Err != nil { + if err := a.Srv.Store.Webhook().DeleteOutgoing(hook.Id, now); err != nil { mlog.Error(fmt.Sprintf("Encountered error deleting outgoing webhook, id=%v", hook.Id)) } } diff --git a/app/webhook.go b/app/webhook.go index ba84d8b566..8d2a9d37d2 100644 --- a/app/webhook.go +++ b/app/webhook.go @@ -536,11 +536,7 @@ func (a *App) DeleteOutgoingWebhook(hookId string) *model.AppError { return model.NewAppError("DeleteOutgoingWebhook", "api.outgoing_webhook.disabled.app_error", nil, "", http.StatusNotImplemented) } - if result := <-a.Srv.Store.Webhook().DeleteOutgoing(hookId, model.GetMillis()); result.Err != nil { - return result.Err - } - - return nil + return a.Srv.Store.Webhook().DeleteOutgoing(hookId, model.GetMillis()) } func (a *App) RegenOutgoingWebhookToken(hook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError) { diff --git a/store/sqlstore/webhook_store.go b/store/sqlstore/webhook_store.go index 527fa52d4b..bdda0c274a 100644 --- a/store/sqlstore/webhook_store.go +++ b/store/sqlstore/webhook_store.go @@ -282,13 +282,13 @@ func (s SqlWebhookStore) GetOutgoingByTeam(teamId string, offset, limit int) sto }) } -func (s SqlWebhookStore) DeleteOutgoing(webhookId string, time int64) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - _, err := s.GetMaster().Exec("Update OutgoingWebhooks SET DeleteAt = :DeleteAt, UpdateAt = :UpdateAt WHERE Id = :Id", map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": webhookId}) - if err != nil { - result.Err = model.NewAppError("SqlWebhookStore.DeleteOutgoing", "store.sql_webhooks.delete_outgoing.app_error", nil, "id="+webhookId+", err="+err.Error(), http.StatusInternalServerError) - } - }) +func (s SqlWebhookStore) DeleteOutgoing(webhookId string, time int64) *model.AppError { + _, err := s.GetMaster().Exec("Update OutgoingWebhooks SET DeleteAt = :DeleteAt, UpdateAt = :UpdateAt WHERE Id = :Id", map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": webhookId}) + if err != nil { + return model.NewAppError("SqlWebhookStore.DeleteOutgoing", "store.sql_webhooks.delete_outgoing.app_error", nil, "id="+webhookId+", err="+err.Error(), http.StatusInternalServerError) + } + + return nil } func (s SqlWebhookStore) PermanentDeleteOutgoingByUser(userId string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index 011e13696e..dbc39cd766 100644 --- a/store/store.go +++ b/store/store.go @@ -392,7 +392,7 @@ type WebhookStore interface { GetOutgoingList(offset, limit int) ([]*model.OutgoingWebhook, *model.AppError) GetOutgoingByChannel(channelId string, offset, limit int) StoreChannel GetOutgoingByTeam(teamId string, offset, limit int) StoreChannel - DeleteOutgoing(webhookId string, time int64) StoreChannel + DeleteOutgoing(webhookId string, time int64) *model.AppError PermanentDeleteOutgoingByChannel(channelId string) *model.AppError PermanentDeleteOutgoingByUser(userId string) StoreChannel UpdateOutgoing(hook *model.OutgoingWebhook) StoreChannel diff --git a/store/storetest/mocks/WebhookStore.go b/store/storetest/mocks/WebhookStore.go index ae5b870c02..f0fb9bb1aa 100644 --- a/store/storetest/mocks/WebhookStore.go +++ b/store/storetest/mocks/WebhookStore.go @@ -74,15 +74,15 @@ func (_m *WebhookStore) DeleteIncoming(webhookId string, time int64) store.Store } // DeleteOutgoing provides a mock function with given fields: webhookId, time -func (_m *WebhookStore) DeleteOutgoing(webhookId string, time int64) store.StoreChannel { +func (_m *WebhookStore) DeleteOutgoing(webhookId string, time int64) *model.AppError { ret := _m.Called(webhookId, time) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, int64) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string, int64) *model.AppError); ok { r0 = rf(webhookId, time) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } diff --git a/store/storetest/webhook_store.go b/store/storetest/webhook_store.go index 88d09cb060..ee0356db0f 100644 --- a/store/storetest/webhook_store.go +++ b/store/storetest/webhook_store.go @@ -429,8 +429,8 @@ func testWebhookStoreDeleteOutgoing(t *testing.T, ss store.Store) { t.Fatal("invalid returned webhook") } - if r2 := <-ss.Webhook().DeleteOutgoing(o1.Id, model.GetMillis()); r2.Err != nil { - t.Fatal(r2.Err) + if err := ss.Webhook().DeleteOutgoing(o1.Id, model.GetMillis()); err != nil { + t.Fatal(err) } if _, err := ss.Webhook().GetOutgoing(o1.Id); err == nil {