From d9969613f704b0db9d9509b1b77e8fbd18ca208d Mon Sep 17 00:00:00 2001 From: Woolim Cho <2680v4@gmail.com> Date: Tue, 28 May 2019 20:02:39 +0900 Subject: [PATCH] Migrate Preference.DeleteCategory to Sync by default (#10927) --- app/team.go | 4 ++-- store/sqlstore/preference_store.go | 24 +++++++++++++----------- store/store.go | 2 +- store/storetest/mocks/PreferenceStore.go | 8 ++++---- store/storetest/preference_store.go | 4 ++-- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/app/team.go b/app/team.go index 22786a91e1..022f1146b6 100644 --- a/app/team.go +++ b/app/team.go @@ -945,8 +945,8 @@ func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string) } // delete the preferences that set the last channel used in the team and other team specific preferences - if result := <-a.Srv.Store.Preference().DeleteCategory(user.Id, team.Id); result.Err != nil { - return result.Err + if err := a.Srv.Store.Preference().DeleteCategory(user.Id, team.Id); err != nil { + return err } a.ClearSessionCacheForUser(user.Id) diff --git a/store/sqlstore/preference_store.go b/store/sqlstore/preference_store.go index 0d4e98701e..6e74a0a902 100644 --- a/store/sqlstore/preference_store.go +++ b/store/sqlstore/preference_store.go @@ -255,17 +255,19 @@ func (s SqlPreferenceStore) Delete(userId, category, name string) store.StoreCha }) } -func (s SqlPreferenceStore) DeleteCategory(userId string, category string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - if _, err := s.GetMaster().Exec( - `DELETE FROM - Preferences - WHERE - UserId = :UserId - AND Category = :Category`, map[string]interface{}{"UserId": userId, "Category": category}); err != nil { - result.Err = model.NewAppError("SqlPreferenceStore.DeleteCategory", "store.sql_preference.delete.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) +func (s SqlPreferenceStore) DeleteCategory(userId string, category string) *model.AppError { + _, err := s.GetMaster().Exec( + `DELETE FROM + Preferences + WHERE + UserId = :UserId + AND Category = :Category`, map[string]interface{}{"UserId": userId, "Category": category}) + + if err != nil { + return model.NewAppError("SqlPreferenceStore.DeleteCategory", "store.sql_preference.delete.app_error", nil, err.Error(), http.StatusInternalServerError) + } + + return nil } func (s SqlPreferenceStore) DeleteCategoryAndName(category string, name string) *model.AppError { diff --git a/store/store.go b/store/store.go index 513de3aa88..ca4949e7a0 100644 --- a/store/store.go +++ b/store/store.go @@ -433,7 +433,7 @@ type PreferenceStore interface { Get(userId string, category string, name string) (*model.Preference, *model.AppError) GetAll(userId string) StoreChannel Delete(userId, category, name string) StoreChannel - DeleteCategory(userId string, category string) StoreChannel + DeleteCategory(userId string, category string) *model.AppError DeleteCategoryAndName(category string, name string) *model.AppError PermanentDeleteByUser(userId string) *model.AppError IsFeatureEnabled(feature, userId string) StoreChannel diff --git a/store/storetest/mocks/PreferenceStore.go b/store/storetest/mocks/PreferenceStore.go index c97a9345dc..7415866fc8 100644 --- a/store/storetest/mocks/PreferenceStore.go +++ b/store/storetest/mocks/PreferenceStore.go @@ -53,15 +53,15 @@ func (_m *PreferenceStore) Delete(userId string, category string, name string) s } // DeleteCategory provides a mock function with given fields: userId, category -func (_m *PreferenceStore) DeleteCategory(userId string, category string) store.StoreChannel { +func (_m *PreferenceStore) DeleteCategory(userId string, category string) *model.AppError { ret := _m.Called(userId, category) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string, string) *model.AppError); ok { r0 = rf(userId, category) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } diff --git a/store/storetest/preference_store.go b/store/storetest/preference_store.go index 7aad216b43..3ba42e3ac8 100644 --- a/store/storetest/preference_store.go +++ b/store/storetest/preference_store.go @@ -376,8 +376,8 @@ func testPreferenceDeleteCategory(t *testing.T, ss store.Store) { t.Fatal("should've returned 2 preferences") } - if result := <-ss.Preference().DeleteCategory(userId, category); result.Err != nil { - t.Fatal(result.Err) + if err := ss.Preference().DeleteCategory(userId, category); err != nil { + t.Fatal(err) } if prefs := store.Must(ss.Preference().GetAll(userId)).(model.Preferences); len([]model.Preference(prefs)) != 0 {