Migrate Emoji.Search to Sync by default (#11308)
* Migrate Emoji.Search to Sync by default * Fix indentation
Этот коммит содержится в:
коммит произвёл
Jesús Espino
родитель
9e9b008f3d
Коммит
c4b9b3cfd3
@@ -229,11 +229,7 @@ func (a *App) SearchEmoji(name string, prefixOnly bool, limit int) ([]*model.Emo
|
|||||||
return nil, model.NewAppError("SearchEmoji", "api.emoji.disabled.app_error", nil, "", http.StatusNotImplemented)
|
return nil, model.NewAppError("SearchEmoji", "api.emoji.disabled.app_error", nil, "", http.StatusNotImplemented)
|
||||||
}
|
}
|
||||||
|
|
||||||
result := <-a.Srv.Store.Emoji().Search(name, prefixOnly, limit)
|
return a.Srv.Store.Emoji().Search(name, prefixOnly, limit)
|
||||||
if result.Err != nil {
|
|
||||||
return nil, result.Err
|
|
||||||
}
|
|
||||||
return result.Data.([]*model.Emoji), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func resizeEmojiGif(gifImg *gif.GIF) *gif.GIF {
|
func resizeEmojiGif(gifImg *gif.GIF) *gif.GIF {
|
||||||
|
|||||||
@@ -183,30 +183,27 @@ func (es SqlEmojiStore) Delete(id string, time int64) *model.AppError {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es SqlEmojiStore) Search(name string, prefixOnly bool, limit int) store.StoreChannel {
|
func (es SqlEmojiStore) Search(name string, prefixOnly bool, limit int) ([]*model.Emoji, *model.AppError) {
|
||||||
return store.Do(func(result *store.StoreResult) {
|
var emojis []*model.Emoji
|
||||||
var emojis []*model.Emoji
|
|
||||||
|
|
||||||
term := ""
|
term := ""
|
||||||
if !prefixOnly {
|
if !prefixOnly {
|
||||||
term = "%"
|
term = "%"
|
||||||
}
|
}
|
||||||
|
|
||||||
term += name + "%"
|
term += name + "%"
|
||||||
|
|
||||||
if _, err := es.GetReplica().Select(&emojis,
|
if _, err := es.GetReplica().Select(&emojis,
|
||||||
`SELECT
|
`SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
Emoji
|
Emoji
|
||||||
WHERE
|
WHERE
|
||||||
Name LIKE :Name
|
Name LIKE :Name
|
||||||
AND DeleteAt = 0
|
AND DeleteAt = 0
|
||||||
ORDER BY Name
|
ORDER BY Name
|
||||||
LIMIT :Limit`, map[string]interface{}{"Name": term, "Limit": limit}); err != nil {
|
LIMIT :Limit`, map[string]interface{}{"Name": term, "Limit": limit}); err != nil {
|
||||||
result.Err = model.NewAppError("SqlEmojiStore.Search", "store.sql_emoji.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
|
return nil, model.NewAppError("SqlEmojiStore.Search", "store.sql_emoji.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
|
||||||
} else {
|
}
|
||||||
result.Data = emojis
|
return emojis, nil
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -462,7 +462,7 @@ type EmojiStore interface {
|
|||||||
GetMultipleByName(names []string) StoreChannel
|
GetMultipleByName(names []string) StoreChannel
|
||||||
GetList(offset, limit int, sort string) StoreChannel
|
GetList(offset, limit int, sort string) StoreChannel
|
||||||
Delete(id string, time int64) *model.AppError
|
Delete(id string, time int64) *model.AppError
|
||||||
Search(name string, prefixOnly bool, limit int) StoreChannel
|
Search(name string, prefixOnly bool, limit int) ([]*model.Emoji, *model.AppError)
|
||||||
}
|
}
|
||||||
|
|
||||||
type StatusStore interface {
|
type StatusStore interface {
|
||||||
|
|||||||
@@ -299,13 +299,13 @@ func testEmojiSearch(t *testing.T, ss store.Store) {
|
|||||||
|
|
||||||
shouldFind := []bool{true, false, false, false}
|
shouldFind := []bool{true, false, false, false}
|
||||||
|
|
||||||
if result := <-ss.Emoji().Search("blargh", true, 100); result.Err != nil {
|
if result, err := ss.Emoji().Search("blargh", true, 100); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
for i, emoji := range emojis {
|
for i, emoji := range emojis {
|
||||||
found := false
|
found := false
|
||||||
|
|
||||||
for _, savedEmoji := range result.Data.([]*model.Emoji) {
|
for _, savedEmoji := range result {
|
||||||
if emoji.Id == savedEmoji.Id {
|
if emoji.Id == savedEmoji.Id {
|
||||||
found = true
|
found = true
|
||||||
break
|
break
|
||||||
@@ -317,13 +317,13 @@ func testEmojiSearch(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
shouldFind = []bool{true, true, true, false}
|
shouldFind = []bool{true, true, true, false}
|
||||||
if result := <-ss.Emoji().Search("blargh", false, 100); result.Err != nil {
|
if result, err := ss.Emoji().Search("blargh", false, 100); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
for i, emoji := range emojis {
|
for i, emoji := range emojis {
|
||||||
found := false
|
found := false
|
||||||
|
|
||||||
for _, savedEmoji := range result.Data.([]*model.Emoji) {
|
for _, savedEmoji := range result {
|
||||||
if emoji.Id == savedEmoji.Id {
|
if emoji.Id == savedEmoji.Id {
|
||||||
found = true
|
found = true
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -137,17 +137,26 @@ func (_m *EmojiStore) Save(emoji *model.Emoji) (*model.Emoji, *model.AppError) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Search provides a mock function with given fields: name, prefixOnly, limit
|
// Search provides a mock function with given fields: name, prefixOnly, limit
|
||||||
func (_m *EmojiStore) Search(name string, prefixOnly bool, limit int) store.StoreChannel {
|
func (_m *EmojiStore) Search(name string, prefixOnly bool, limit int) ([]*model.Emoji, *model.AppError) {
|
||||||
ret := _m.Called(name, prefixOnly, limit)
|
ret := _m.Called(name, prefixOnly, limit)
|
||||||
|
|
||||||
var r0 store.StoreChannel
|
var r0 []*model.Emoji
|
||||||
if rf, ok := ret.Get(0).(func(string, bool, int) store.StoreChannel); ok {
|
if rf, ok := ret.Get(0).(func(string, bool, int) []*model.Emoji); ok {
|
||||||
r0 = rf(name, prefixOnly, limit)
|
r0 = rf(name, prefixOnly, limit)
|
||||||
} else {
|
} else {
|
||||||
if ret.Get(0) != nil {
|
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, bool, int) *model.AppError); ok {
|
||||||
|
r1 = rf(name, prefixOnly, limit)
|
||||||
|
} else {
|
||||||
|
if ret.Get(1) != nil {
|
||||||
|
r1 = ret.Get(1).(*model.AppError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user