Migrate Emoji.Delete to Sync by default (#11313)
Этот коммит содержится в:
коммит произвёл
Jesús Espino
родитель
bd3f72254d
Коммит
4494a56162
@@ -160,7 +160,7 @@ func (a *App) UploadEmojiImage(id string, imageData *multipart.FileHeader) *mode
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) DeleteEmoji(emoji *model.Emoji) *model.AppError {
|
func (a *App) DeleteEmoji(emoji *model.Emoji) *model.AppError {
|
||||||
if err := (<-a.Srv.Store.Emoji().Delete(emoji.Id, model.GetMillis())).Err; err != nil {
|
if err := a.Srv.Store.Emoji().Delete(emoji.Id, model.GetMillis()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -163,24 +163,23 @@ func (es SqlEmojiStore) GetList(offset, limit int, sort string) store.StoreChann
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es SqlEmojiStore) Delete(id string, time int64) store.StoreChannel {
|
func (es SqlEmojiStore) Delete(id string, time int64) *model.AppError {
|
||||||
return store.Do(func(result *store.StoreResult) {
|
if sqlResult, err := es.GetMaster().Exec(
|
||||||
if sqlResult, err := es.GetMaster().Exec(
|
`UPDATE
|
||||||
`UPDATE
|
Emoji
|
||||||
Emoji
|
SET
|
||||||
SET
|
DeleteAt = :DeleteAt,
|
||||||
DeleteAt = :DeleteAt,
|
UpdateAt = :UpdateAt
|
||||||
UpdateAt = :UpdateAt
|
WHERE
|
||||||
WHERE
|
Id = :Id
|
||||||
Id = :Id
|
AND DeleteAt = 0`, map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": id}); err != nil {
|
||||||
AND DeleteAt = 0`, map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": id}); err != nil {
|
return model.NewAppError("SqlEmojiStore.Delete", "store.sql_emoji.delete.app_error", nil, "id="+id+", err="+err.Error(), http.StatusInternalServerError)
|
||||||
result.Err = model.NewAppError("SqlEmojiStore.Delete", "store.sql_emoji.delete.app_error", nil, "id="+id+", err="+err.Error(), http.StatusInternalServerError)
|
} else if rows, _ := sqlResult.RowsAffected(); rows == 0 {
|
||||||
} else if rows, _ := sqlResult.RowsAffected(); rows == 0 {
|
return model.NewAppError("SqlEmojiStore.Delete", "store.sql_emoji.delete.no_results", nil, "id="+id+", err="+err.Error(), http.StatusBadRequest)
|
||||||
result.Err = model.NewAppError("SqlEmojiStore.Delete", "store.sql_emoji.delete.no_results", nil, "id="+id+", err="+err.Error(), http.StatusBadRequest)
|
}
|
||||||
}
|
|
||||||
|
|
||||||
emojiCache.Remove(id)
|
emojiCache.Remove(id)
|
||||||
})
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es SqlEmojiStore) Search(name string, prefixOnly bool, limit int) store.StoreChannel {
|
func (es SqlEmojiStore) Search(name string, prefixOnly bool, limit int) store.StoreChannel {
|
||||||
|
|||||||
@@ -459,7 +459,7 @@ type EmojiStore interface {
|
|||||||
GetByName(name string) StoreChannel
|
GetByName(name string) StoreChannel
|
||||||
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) StoreChannel
|
Delete(id string, time int64) *model.AppError
|
||||||
Search(name string, prefixOnly bool, limit int) StoreChannel
|
Search(name string, prefixOnly bool, limit int) StoreChannel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,16 +45,16 @@ func testEmojiSaveDelete(t *testing.T, ss store.Store) {
|
|||||||
t.Fatal("shouldn't be able to save emoji with duplicate name")
|
t.Fatal("shouldn't be able to save emoji with duplicate name")
|
||||||
}
|
}
|
||||||
|
|
||||||
if result := <-ss.Emoji().Delete(emoji1.Id, time.Now().Unix()); result.Err != nil {
|
if err := ss.Emoji().Delete(emoji1.Id, time.Now().Unix()); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := ss.Emoji().Save(&emoji2); err != nil {
|
if _, err := ss.Emoji().Save(&emoji2); err != nil {
|
||||||
t.Fatal("should be able to save emoji with duplicate name now that original has been deleted", err)
|
t.Fatal("should be able to save emoji with duplicate name now that original has been deleted", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if result := <-ss.Emoji().Delete(emoji2.Id, time.Now().Unix()+1); result.Err != nil {
|
if err := ss.Emoji().Delete(emoji2.Id, time.Now().Unix()+1); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +81,8 @@ func testEmojiGet(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, emoji := range emojis {
|
for _, emoji := range emojis {
|
||||||
store.Must(ss.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
err := ss.Emoji().Delete(emoji.Id, time.Now().Unix())
|
||||||
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -127,7 +128,8 @@ func testEmojiGetByName(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, emoji := range emojis {
|
for _, emoji := range emojis {
|
||||||
store.Must(ss.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
err := ss.Emoji().Delete(emoji.Id, time.Now().Unix())
|
||||||
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -161,7 +163,8 @@ func testEmojiGetMultipleByName(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, emoji := range emojis {
|
for _, emoji := range emojis {
|
||||||
store.Must(ss.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
err := ss.Emoji().Delete(emoji.Id, time.Now().Unix())
|
||||||
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -221,7 +224,8 @@ func testEmojiGetList(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, emoji := range emojis {
|
for _, emoji := range emojis {
|
||||||
store.Must(ss.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
err := ss.Emoji().Delete(emoji.Id, time.Now().Unix())
|
||||||
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -288,7 +292,8 @@ func testEmojiSearch(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, emoji := range emojis {
|
for _, emoji := range emojis {
|
||||||
store.Must(ss.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
err := ss.Emoji().Delete(emoji.Id, time.Now().Unix())
|
||||||
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
@@ -14,15 +14,15 @@ type EmojiStore struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete provides a mock function with given fields: id, time
|
// Delete provides a mock function with given fields: id, time
|
||||||
func (_m *EmojiStore) Delete(id string, time int64) store.StoreChannel {
|
func (_m *EmojiStore) Delete(id string, time int64) *model.AppError {
|
||||||
ret := _m.Called(id, time)
|
ret := _m.Called(id, time)
|
||||||
|
|
||||||
var r0 store.StoreChannel
|
var r0 *model.AppError
|
||||||
if rf, ok := ret.Get(0).(func(string, int64) store.StoreChannel); ok {
|
if rf, ok := ret.Get(0).(func(string, int64) *model.AppError); ok {
|
||||||
r0 = rf(id, time)
|
r0 = rf(id, time)
|
||||||
} else {
|
} else {
|
||||||
if ret.Get(0) != nil {
|
if ret.Get(0) != nil {
|
||||||
r0 = ret.Get(0).(store.StoreChannel)
|
r0 = ret.Get(0).(*model.AppError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user