From a4262373e5a96a71e004ab7829d71ce0fb995e8e Mon Sep 17 00:00:00 2001 From: Shobhit Gupta Date: Mon, 24 Jun 2019 10:25:29 -0700 Subject: [PATCH] Migrate Emoji.GetList to Sync by default (#11314) --- app/emoji.go | 6 +----- store/sqlstore/emoji_store.go | 25 +++++++++++-------------- store/store.go | 2 +- store/storetest/emoji_store.go | 16 +++++++--------- store/storetest/mocks/EmojiStore.go | 19 ++++++++++++++----- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/app/emoji.go b/app/emoji.go index 9a6d7677ab..09cff60de2 100644 --- a/app/emoji.go +++ b/app/emoji.go @@ -79,11 +79,7 @@ func (a *App) CreateEmoji(sessionUserId string, emoji *model.Emoji, multiPartIma } func (a *App) GetEmojiList(page, perPage int, sort string) ([]*model.Emoji, *model.AppError) { - result := <-a.Srv.Store.Emoji().GetList(page*perPage, perPage, sort) - if result.Err != nil { - return nil, result.Err - } - return result.Data.([]*model.Emoji), nil + return a.Srv.Store.Emoji().GetList(page*perPage, perPage, sort) } func (a *App) UploadEmojiImage(id string, imageData *multipart.FileHeader) *model.AppError { diff --git a/store/sqlstore/emoji_store.go b/store/sqlstore/emoji_store.go index 5d62013a36..76c519f6d6 100644 --- a/store/sqlstore/emoji_store.go +++ b/store/sqlstore/emoji_store.go @@ -144,24 +144,21 @@ func (es SqlEmojiStore) GetMultipleByName(names []string) store.StoreChannel { }) } -func (es SqlEmojiStore) GetList(offset, limit int, sort string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - var emoji []*model.Emoji +func (es SqlEmojiStore) GetList(offset, limit int, sort string) ([]*model.Emoji, *model.AppError) { + var emoji []*model.Emoji - query := "SELECT * FROM Emoji WHERE DeleteAt = 0" + query := "SELECT * FROM Emoji WHERE DeleteAt = 0" - if sort == model.EMOJI_SORT_BY_NAME { - query += " ORDER BY Name" - } + if sort == model.EMOJI_SORT_BY_NAME { + query += " ORDER BY Name" + } - query += " LIMIT :Limit OFFSET :Offset" + query += " LIMIT :Limit OFFSET :Offset" - if _, err := es.GetReplica().Select(&emoji, query, map[string]interface{}{"Offset": offset, "Limit": limit}); err != nil { - result.Err = model.NewAppError("SqlEmojiStore.GetList", "store.sql_emoji.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - result.Data = emoji - } - }) + if _, err := es.GetReplica().Select(&emoji, query, map[string]interface{}{"Offset": offset, "Limit": limit}); err != nil { + return nil, model.NewAppError("SqlEmojiStore.GetList", "store.sql_emoji.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return emoji, nil } func (es SqlEmojiStore) Delete(id string, time int64) *model.AppError { diff --git a/store/store.go b/store/store.go index 217e64dcda..fd13df5cfd 100644 --- a/store/store.go +++ b/store/store.go @@ -460,7 +460,7 @@ type EmojiStore interface { Get(id string, allowFromCache bool) (*model.Emoji, *model.AppError) GetByName(name string) (*model.Emoji, *model.AppError) GetMultipleByName(names []string) StoreChannel - GetList(offset, limit int, sort string) StoreChannel + GetList(offset, limit int, sort string) ([]*model.Emoji, *model.AppError) Delete(id string, time int64) *model.AppError Search(name string, prefixOnly bool, limit int) ([]*model.Emoji, *model.AppError) } diff --git a/store/storetest/emoji_store.go b/store/storetest/emoji_store.go index dab90441b8..0f37aa3054 100644 --- a/store/storetest/emoji_store.go +++ b/store/storetest/emoji_store.go @@ -229,13 +229,13 @@ func testEmojiGetList(t *testing.T, ss store.Store) { } }() - if result := <-ss.Emoji().GetList(0, 100, ""); result.Err != nil { - t.Fatal(result.Err) + if result, err := ss.Emoji().GetList(0, 100, ""); err != nil { + t.Fatal(err) } else { for _, emoji := range emojis { found := false - for _, savedEmoji := range result.Data.([]*model.Emoji) { + for _, savedEmoji := range result { if emoji.Id == savedEmoji.Id { found = true break @@ -248,17 +248,15 @@ func testEmojiGetList(t *testing.T, ss store.Store) { } } - result := <-ss.Emoji().GetList(0, 3, model.EMOJI_SORT_BY_NAME) - assert.Nil(t, result.Err) - remojis := result.Data.([]*model.Emoji) + remojis, err := ss.Emoji().GetList(0, 3, model.EMOJI_SORT_BY_NAME) + assert.Nil(t, err) assert.Equal(t, 3, len(remojis)) assert.Equal(t, emojis[0].Name, remojis[0].Name) assert.Equal(t, emojis[1].Name, remojis[1].Name) assert.Equal(t, emojis[2].Name, remojis[2].Name) - result = <-ss.Emoji().GetList(1, 2, model.EMOJI_SORT_BY_NAME) - assert.Nil(t, result.Err) - remojis = result.Data.([]*model.Emoji) + remojis, err = ss.Emoji().GetList(1, 2, model.EMOJI_SORT_BY_NAME) + assert.Nil(t, err) assert.Equal(t, 2, len(remojis)) assert.Equal(t, emojis[1].Name, remojis[0].Name) assert.Equal(t, emojis[2].Name, remojis[1].Name) diff --git a/store/storetest/mocks/EmojiStore.go b/store/storetest/mocks/EmojiStore.go index d28b2718f8..a2f83c2fca 100644 --- a/store/storetest/mocks/EmojiStore.go +++ b/store/storetest/mocks/EmojiStore.go @@ -80,19 +80,28 @@ func (_m *EmojiStore) GetByName(name string) (*model.Emoji, *model.AppError) { } // GetList provides a mock function with given fields: offset, limit, sort -func (_m *EmojiStore) GetList(offset int, limit int, sort string) store.StoreChannel { +func (_m *EmojiStore) GetList(offset int, limit int, sort string) ([]*model.Emoji, *model.AppError) { ret := _m.Called(offset, limit, sort) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(int, int, string) store.StoreChannel); ok { + var r0 []*model.Emoji + if rf, ok := ret.Get(0).(func(int, int, string) []*model.Emoji); ok { r0 = rf(offset, limit, sort) } 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(int, int, string) *model.AppError); ok { + r1 = rf(offset, limit, sort) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetMultipleByName provides a mock function with given fields: names