* modify Get method in preference_store * modify interface to match changes on preference store Get method * modify variable initialization * fix behavior on GetPreferenceByCategoryAndNameForUser
Этот коммит содержится в:
коммит произвёл
Miguel de la Cruz
родитель
b3e09715df
Коммит
a68ad55151
@@ -163,24 +163,21 @@ func (s SqlPreferenceStore) update(transaction *gorp.Transaction, preference *mo
|
||||
return result
|
||||
}
|
||||
|
||||
func (s SqlPreferenceStore) Get(userId string, category string, name string) store.StoreChannel {
|
||||
return store.Do(func(result *store.StoreResult) {
|
||||
var preference model.Preference
|
||||
func (s SqlPreferenceStore) Get(userId string, category string, name string) (*model.Preference, *model.AppError) {
|
||||
var preference *model.Preference
|
||||
|
||||
if err := s.GetReplica().SelectOne(&preference,
|
||||
`SELECT
|
||||
*
|
||||
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.Get", "store.sql_preference.get.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
} else {
|
||||
result.Data = preference
|
||||
}
|
||||
})
|
||||
if err := s.GetReplica().SelectOne(&preference,
|
||||
`SELECT
|
||||
*
|
||||
FROM
|
||||
Preferences
|
||||
WHERE
|
||||
UserId = :UserId
|
||||
AND Category = :Category
|
||||
AND Name = :Name`, map[string]interface{}{"UserId": userId, "Category": category, "Name": name}); err != nil {
|
||||
return nil, model.NewAppError("SqlPreferenceStore.Get", "store.sql_preference.get.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
return preference, nil
|
||||
}
|
||||
|
||||
func (s SqlPreferenceStore) GetCategory(userId string, category string) store.StoreChannel {
|
||||
|
||||
@@ -429,7 +429,7 @@ type CommandWebhookStore interface {
|
||||
|
||||
type PreferenceStore interface {
|
||||
Save(preferences *model.Preferences) StoreChannel
|
||||
Get(userId string, category string, name string) StoreChannel
|
||||
Get(userId string, category string, name string) (*model.Preference, *model.AppError)
|
||||
GetCategory(userId string, category string) StoreChannel
|
||||
GetAll(userId string) StoreChannel
|
||||
Delete(userId, category, name string) StoreChannel
|
||||
|
||||
@@ -78,19 +78,28 @@ func (_m *PreferenceStore) DeleteCategoryAndName(category string, name string) s
|
||||
}
|
||||
|
||||
// Get provides a mock function with given fields: userId, category, name
|
||||
func (_m *PreferenceStore) Get(userId string, category string, name string) store.StoreChannel {
|
||||
func (_m *PreferenceStore) Get(userId string, category string, name string) (*model.Preference, *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.Preference
|
||||
if rf, ok := ret.Get(0).(func(string, string, string) *model.Preference); ok {
|
||||
r0 = rf(userId, category, name)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(store.StoreChannel)
|
||||
r0 = ret.Get(0).(*model.Preference)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
var r1 *model.AppError
|
||||
if rf, ok := ret.Get(1).(func(string, string, string) *model.AppError); ok {
|
||||
r1 = rf(userId, category, name)
|
||||
} else {
|
||||
if ret.Get(1) != nil {
|
||||
r1 = ret.Get(1).(*model.AppError)
|
||||
}
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetAll provides a mock function with given fields: userId
|
||||
|
||||
@@ -47,7 +47,7 @@ func testPreferenceSave(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
for _, preference := range preferences {
|
||||
if data := store.Must(ss.Preference().Get(preference.UserId, preference.Category, preference.Name)).(model.Preference); preference != data {
|
||||
if data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name); preference.ToJson() != data.ToJson() {
|
||||
t.Fatal("got incorrect preference after first Save")
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ func testPreferenceSave(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
for _, preference := range preferences {
|
||||
if data := store.Must(ss.Preference().Get(preference.UserId, preference.Category, preference.Name)).(model.Preference); preference != data {
|
||||
if data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name); preference.ToJson() != data.ToJson() {
|
||||
t.Fatal("got incorrect preference after second Save")
|
||||
}
|
||||
}
|
||||
@@ -95,14 +95,14 @@ func testPreferenceGet(t *testing.T, ss store.Store) {
|
||||
|
||||
store.Must(ss.Preference().Save(&preferences))
|
||||
|
||||
if result := <-ss.Preference().Get(userId, category, name); result.Err != nil {
|
||||
t.Fatal(result.Err)
|
||||
} else if data := result.Data.(model.Preference); data != preferences[0] {
|
||||
if data, err := ss.Preference().Get(userId, category, name); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if data.ToJson() != preferences[0].ToJson() {
|
||||
t.Fatal("got incorrect preference")
|
||||
}
|
||||
|
||||
// make sure getting a missing preference fails
|
||||
if result := <-ss.Preference().Get(model.NewId(), model.NewId(), model.NewId()); result.Err == nil {
|
||||
if _, err := ss.Preference().Get(model.NewId(), model.NewId(), model.NewId()); err == nil {
|
||||
t.Fatal("no error on getting a missing preference")
|
||||
}
|
||||
}
|
||||
@@ -439,9 +439,9 @@ func testPreferenceCleanupFlagsBatch(t *testing.T, ss store.Store) {
|
||||
result := <-ss.Preference().CleanupFlagsBatch(10000)
|
||||
assert.Nil(t, result.Err)
|
||||
|
||||
result = <-ss.Preference().Get(userId, category, preference1.Name)
|
||||
assert.Nil(t, result.Err)
|
||||
_, err := ss.Preference().Get(userId, category, preference1.Name)
|
||||
assert.Nil(t, err)
|
||||
|
||||
result = <-ss.Preference().Get(userId, category, preference2.Name)
|
||||
assert.NotNil(t, result.Err)
|
||||
_, err = ss.Preference().Get(userId, category, preference2.Name)
|
||||
assert.NotNil(t, err)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user