[MM-15302] Migrate Preference.Delete to Sync by default #10715 (#11101)

* MM-15302: Migrate `Preference.Delete` to Sync by default #10715

* MM-15302: Migrate `Preference.Delete` to Sync by default #10715

* regenerate store mocks

* fix shadow var
This commit is contained in:
Taufiq Rahman
2019-06-11 14:51:55 +06:00
committed by Jesús Espino
parent c2d7fba39a
commit 599dcb0f77
6 changed files with 26 additions and 24 deletions

View File

@@ -455,7 +455,7 @@ func (a *App) DeauthorizeOAuthAppForUser(userId, appId string) *model.AppError {
}
// Deauthorize the app
if err := (<-a.Srv.Store.Preference().Delete(userId, model.PREFERENCE_CATEGORY_AUTHORIZED_OAUTH_APP, appId)).Err; err != nil {
if err := a.Srv.Store.Preference().Delete(userId, model.PREFERENCE_CATEGORY_AUTHORIZED_OAUTH_APP, appId); err != nil {
return err
}

View File

@@ -70,9 +70,9 @@ func (a *App) DeletePreferences(userId string, preferences model.Preferences) *m
}
for _, preference := range preferences {
if result := <-a.Srv.Store.Preference().Delete(userId, preference.Category, preference.Name); result.Err != nil {
result.Err.StatusCode = http.StatusBadRequest
return result.Err
if err := a.Srv.Store.Preference().Delete(userId, preference.Category, preference.Name); err != nil {
err.StatusCode = http.StatusBadRequest
return err
}
}

View File

@@ -236,18 +236,21 @@ func (s SqlPreferenceStore) IsFeatureEnabled(feature, userId string) (bool, *mod
return value == "true", nil
}
func (s SqlPreferenceStore) Delete(userId, category, name string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
if _, err := s.GetMaster().Exec(
`DELETE FROM
Preferences
WHERE
UserId = :UserId
AND Category = :Category
AND Name = :Name`, map[string]interface{}{"UserId": userId, "Category": category, "Name": name}); err != nil {
result.Err = model.NewAppError("SqlPreferenceStore.Delete", "store.sql_preference.delete.app_error", nil, err.Error(), http.StatusInternalServerError)
}
})
func (s SqlPreferenceStore) Delete(userId, category, name string) *model.AppError {
query :=
`DELETE FROM Preferences
WHERE
UserId = :UserId
AND Category = :Category
AND Name = :Name`
_, err := s.GetMaster().Exec(query, map[string]interface{}{"UserId": userId, "Category": category, "Name": name})
if err != nil {
return model.NewAppError("SqlPreferenceStore.Delete", "store.sql_preference.delete.app_error", nil, err.Error(), http.StatusInternalServerError)
}
return nil
}
func (s SqlPreferenceStore) DeleteCategory(userId string, category string) *model.AppError {

View File

@@ -432,7 +432,7 @@ type PreferenceStore interface {
GetCategory(userId string, category string) (model.Preferences, *model.AppError)
Get(userId string, category string, name string) (*model.Preference, *model.AppError)
GetAll(userId string) (model.Preferences, *model.AppError)
Delete(userId, category, name string) StoreChannel
Delete(userId, category, name string) *model.AppError
DeleteCategory(userId string, category string) *model.AppError
DeleteCategoryAndName(category string, name string) *model.AppError
PermanentDeleteByUser(userId string) *model.AppError

View File

@@ -6,7 +6,6 @@ package mocks
import mock "github.com/stretchr/testify/mock"
import model "github.com/mattermost/mattermost-server/model"
import store "github.com/mattermost/mattermost-server/store"
// PreferenceStore is an autogenerated mock type for the PreferenceStore type
type PreferenceStore struct {
@@ -37,15 +36,15 @@ func (_m *PreferenceStore) CleanupFlagsBatch(limit int64) (int64, *model.AppErro
}
// Delete provides a mock function with given fields: userId, category, name
func (_m *PreferenceStore) Delete(userId string, category string, name string) store.StoreChannel {
func (_m *PreferenceStore) Delete(userId string, category string, name string) *model.AppError {
ret := _m.Called(userId, category, name)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string, string, string) store.StoreChannel); ok {
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, string, string) *model.AppError); ok {
r0 = rf(userId, category, name)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).(*model.AppError)
}
}

View File

@@ -331,8 +331,8 @@ func testPreferenceDelete(t *testing.T, ss store.Store) {
require.Nil(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference")
if result := <-ss.Preference().Delete(preference.UserId, preference.Category, preference.Name); result.Err != nil {
t.Fatal(result.Err)
if err = ss.Preference().Delete(preference.UserId, preference.Category, preference.Name); err != nil {
t.Fatal(err)
}
preferences, err = ss.Preference().GetAll(preference.UserId)
require.Nil(t, err)