made the emoji store getByName method sync (#11324)

This commit is contained in:
Pradeep Murugesan
2019-06-21 12:19:57 +01:00
committed by Hanzei
parent 9ce1aa4455
commit d300f4a6ad
7 changed files with 47 additions and 43 deletions

View File

@@ -100,26 +100,27 @@ func (es SqlEmojiStore) Get(id string, allowFromCache bool) (*model.Emoji, *mode
return emoji, nil
}
func (es SqlEmojiStore) GetByName(name string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
var emoji *model.Emoji
func (es SqlEmojiStore) GetByName(name string) (*model.Emoji, *model.AppError) {
if err := es.GetReplica().SelectOne(&emoji,
`SELECT
*
FROM
Emoji
WHERE
Name = :Name
AND DeleteAt = 0`, map[string]interface{}{"Name": name}); err != nil {
result.Err = model.NewAppError("SqlEmojiStore.GetByName", "store.sql_emoji.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
if err == sql.ErrNoRows {
result.Err.StatusCode = http.StatusNotFound
}
} else {
result.Data = emoji
var emoji *model.Emoji
if err := es.GetReplica().SelectOne(&emoji,
`SELECT
*
FROM
Emoji
WHERE
Name = :Name
AND DeleteAt = 0`, map[string]interface{}{"Name": name}); err != nil {
if err == sql.ErrNoRows {
return nil, model.NewAppError("SqlEmojiStore.GetByName", "store.sql_emoji.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusNotFound)
}
})
return nil, model.NewAppError("SqlEmojiStore.GetByName", "store.sql_emoji.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
}
return emoji, nil
}
func (es SqlEmojiStore) GetMultipleByName(names []string) store.StoreChannel {

View File

@@ -456,7 +456,7 @@ type TokenStore interface {
type EmojiStore interface {
Save(emoji *model.Emoji) (*model.Emoji, *model.AppError)
Get(id string, allowFromCache bool) (*model.Emoji, *model.AppError)
GetByName(name string) StoreChannel
GetByName(name string) (*model.Emoji, *model.AppError)
GetMultipleByName(names []string) StoreChannel
GetList(offset, limit int, sort string) StoreChannel
Delete(id string, time int64) *model.AppError

View File

@@ -134,8 +134,8 @@ func testEmojiGetByName(t *testing.T, ss store.Store) {
}()
for _, emoji := range emojis {
if result := <-ss.Emoji().GetByName(emoji.Name); result.Err != nil {
t.Fatalf("failed to get emoji with name %v: %v", emoji.Name, result.Err)
if _, err := ss.Emoji().GetByName(emoji.Name); err != nil {
t.Fatalf("failed to get emoji with name %v: %v", emoji.Name, err)
}
}
}

View File

@@ -55,19 +55,28 @@ func (_m *EmojiStore) Get(id string, allowFromCache bool) (*model.Emoji, *model.
}
// GetByName provides a mock function with given fields: name
func (_m *EmojiStore) GetByName(name string) store.StoreChannel {
func (_m *EmojiStore) GetByName(name string) (*model.Emoji, *model.AppError) {
ret := _m.Called(name)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok {
var r0 *model.Emoji
if rf, ok := ret.Get(0).(func(string) *model.Emoji); ok {
r0 = rf(name)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).(*model.Emoji)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
r1 = rf(name)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetList provides a mock function with given fields: offset, limit, sort