diff --git a/app/user.go b/app/user.go index 537debe927..c8579596d7 100644 --- a/app/user.go +++ b/app/user.go @@ -1435,8 +1435,8 @@ func (a *App) PermanentDeleteUser(user *model.User) *model.AppError { return err } - if result := <-a.Srv.Store.Preference().PermanentDeleteByUser(user.Id); result.Err != nil { - return result.Err + if err := a.Srv.Store.Preference().PermanentDeleteByUser(user.Id); err != nil { + return err } if result := <-a.Srv.Store.Channel().PermanentDeleteMembersByUser(user.Id); result.Err != nil { diff --git a/store/sqlstore/preference_store.go b/store/sqlstore/preference_store.go index d07837b8d0..93b6786ee2 100644 --- a/store/sqlstore/preference_store.go +++ b/store/sqlstore/preference_store.go @@ -216,13 +216,18 @@ func (s SqlPreferenceStore) GetAll(userId string) store.StoreChannel { }) } -func (s SqlPreferenceStore) PermanentDeleteByUser(userId string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - if _, err := s.GetMaster().Exec( - `DELETE FROM Preferences WHERE UserId = :UserId`, map[string]interface{}{"UserId": userId}); err != nil { - result.Err = model.NewAppError("SqlPreferenceStore.Delete", "store.sql_preference.permanent_delete_by_user.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) +func (s SqlPreferenceStore) PermanentDeleteByUser(userId string) *model.AppError { + query := + `DELETE FROM + Preferences + WHERE + UserId = :UserId` + + if _, err := s.GetMaster().Exec(query, map[string]interface{}{"UserId": userId}); err != nil { + return model.NewAppError("SqlPreferenceStore.Delete", "store.sql_preference.permanent_delete_by_user.app_error", nil, err.Error(), http.StatusInternalServerError) + } + + return nil } func (s SqlPreferenceStore) IsFeatureEnabled(feature, userId string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index e9f4bd96f4..854f1f41eb 100644 --- a/store/store.go +++ b/store/store.go @@ -435,7 +435,7 @@ type PreferenceStore interface { Delete(userId, category, name string) StoreChannel DeleteCategory(userId string, category string) StoreChannel DeleteCategoryAndName(category string, name string) StoreChannel - PermanentDeleteByUser(userId string) StoreChannel + PermanentDeleteByUser(userId string) *model.AppError IsFeatureEnabled(feature, userId string) StoreChannel CleanupFlagsBatch(limit int64) StoreChannel } diff --git a/store/storetest/mocks/PreferenceStore.go b/store/storetest/mocks/PreferenceStore.go index 86106cba72..05f5e009f9 100644 --- a/store/storetest/mocks/PreferenceStore.go +++ b/store/storetest/mocks/PreferenceStore.go @@ -160,15 +160,15 @@ func (_m *PreferenceStore) IsFeatureEnabled(feature string, userId string) store } // PermanentDeleteByUser provides a mock function with given fields: userId -func (_m *PreferenceStore) PermanentDeleteByUser(userId string) store.StoreChannel { +func (_m *PreferenceStore) PermanentDeleteByUser(userId string) *model.AppError { ret := _m.Called(userId) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string) *model.AppError); ok { r0 = rf(userId) } 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 e713d54b6b..aebc93e75c 100644 --- a/store/storetest/preference_store.go +++ b/store/storetest/preference_store.go @@ -235,8 +235,8 @@ func testPreferenceDeleteByUser(t *testing.T, ss store.Store) { store.Must(ss.Preference().Save(&preferences)) - if result := <-ss.Preference().PermanentDeleteByUser(userId); result.Err != nil { - t.Fatal(result.Err) + if err := ss.Preference().PermanentDeleteByUser(userId); err != nil { + t.Fatal(err) } }