Channel.GetDeleted to sync by default (#11205)

Этот коммит содержится в:
Rodrigo Villablanca Vásquez
2019-06-17 13:46:37 -04:00
коммит произвёл Christopher Poile
родитель 6bb147c380
Коммит 651c3196a0
5 изменённых файлов: 39 добавлений и 43 удалений

Просмотреть файл

@@ -1257,11 +1257,7 @@ func (a *App) GetAllChannels(page, perPage int, opts model.ChannelSearchOpts) (*
}
func (a *App) GetDeletedChannels(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) {
result := <-a.Srv.Store.Channel().GetDeleted(teamId, offset, limit)
if result.Err != nil {
return nil, result.Err
}
return result.Data.(*model.ChannelList), nil
return a.Srv.Store.Channel().GetDeleted(teamId, offset, limit)
}
func (a *App) GetChannelsUserNotIn(teamId string, userId string, offset int, limit int) (*model.ChannelList, *model.AppError) {

Просмотреть файл

@@ -1270,21 +1270,17 @@ func (s SqlChannelStore) GetDeletedByName(teamId string, name string) store.Stor
})
}
func (s SqlChannelStore) GetDeleted(teamId string, offset int, limit int) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
channels := &model.ChannelList{}
func (s SqlChannelStore) GetDeleted(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) {
channels := &model.ChannelList{}
if _, err := s.GetReplica().Select(channels, "SELECT * FROM Channels WHERE (TeamId = :TeamId OR TeamId = '') AND DeleteAt != 0 ORDER BY DisplayName LIMIT :Limit OFFSET :Offset", map[string]interface{}{"TeamId": teamId, "Limit": limit, "Offset": offset}); err != nil {
if err == sql.ErrNoRows {
result.Err = model.NewAppError("SqlChannelStore.GetDeleted", "store.sql_channel.get_deleted.missing.app_error", nil, "teamId="+teamId+", "+err.Error(), http.StatusNotFound)
return
}
result.Err = model.NewAppError("SqlChannelStore.GetDeleted", "store.sql_channel.get_deleted.existing.app_error", nil, "teamId="+teamId+", "+err.Error(), http.StatusInternalServerError)
return
if _, err := s.GetReplica().Select(channels, "SELECT * FROM Channels WHERE (TeamId = :TeamId OR TeamId = '') AND DeleteAt != 0 ORDER BY DisplayName LIMIT :Limit OFFSET :Offset", map[string]interface{}{"TeamId": teamId, "Limit": limit, "Offset": offset}); err != nil {
if err == sql.ErrNoRows {
return nil, model.NewAppError("SqlChannelStore.GetDeleted", "store.sql_channel.get_deleted.missing.app_error", nil, "teamId="+teamId+", "+err.Error(), http.StatusNotFound)
}
return nil, model.NewAppError("SqlChannelStore.GetDeleted", "store.sql_channel.get_deleted.existing.app_error", nil, "teamId="+teamId+", "+err.Error(), http.StatusInternalServerError)
}
result.Data = channels
})
return channels, nil
}
var CHANNEL_MEMBERS_WITH_SCHEME_SELECT_QUERY = `

Просмотреть файл

@@ -146,7 +146,7 @@ type ChannelStore interface {
GetByNames(team_id string, names []string, allowFromCache bool) ([]*model.Channel, *model.AppError)
GetByNameIncludeDeleted(team_id string, name string, allowFromCache bool) StoreChannel
GetDeletedByName(team_id string, name string) StoreChannel
GetDeleted(team_id string, offset int, limit int) StoreChannel
GetDeleted(team_id string, offset int, limit int) (*model.ChannelList, *model.AppError)
GetChannels(teamId string, userId string, includeDeleted bool) StoreChannel
GetAllChannels(page, perPage int, opts ChannelSearchOpts) StoreChannel
GetMoreChannels(teamId string, userId string, offset int, limit int) (*model.ChannelList, *model.AppError)

Просмотреть файл

@@ -780,11 +780,10 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) {
err = ss.Channel().Delete(o1.Id, model.GetMillis())
require.Nil(t, err, "channel should have been deleted")
cresult := <-ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if cresult.Err != nil {
t.Fatal(cresult.Err)
list, err := ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if err != nil {
t.Fatal(err)
}
list := cresult.Data.(*model.ChannelList)
if len(*list) != 1 {
t.Fatal("wrong list")
@@ -802,11 +801,10 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) {
_, err = ss.Channel().Save(&o2, -1)
require.Nil(t, err)
cresult = <-ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if cresult.Err != nil {
t.Fatal(cresult.Err)
list, err = ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if err != nil {
t.Fatal(err)
}
list = cresult.Data.(*model.ChannelList)
if len(*list) != 1 {
t.Fatal("wrong list")
@@ -824,31 +822,28 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) {
err = ss.Channel().Delete(o3.Id, model.GetMillis())
require.Nil(t, err, "channel should have been deleted")
cresult = <-ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if cresult.Err != nil {
t.Fatal(cresult.Err)
list, err = ss.Channel().GetDeleted(o1.TeamId, 0, 100)
if err != nil {
t.Fatal(err)
}
list = cresult.Data.(*model.ChannelList)
if len(*list) != 2 {
t.Fatal("wrong list length")
}
cresult = <-ss.Channel().GetDeleted(o1.TeamId, 0, 1)
if cresult.Err != nil {
t.Fatal(cresult.Err)
list, err = ss.Channel().GetDeleted(o1.TeamId, 0, 1)
if err != nil {
t.Fatal(err)
}
list = cresult.Data.(*model.ChannelList)
if len(*list) != 1 {
t.Fatal("wrong list length")
}
cresult = <-ss.Channel().GetDeleted(o1.TeamId, 1, 1)
if cresult.Err != nil {
t.Fatal(cresult.Err)
list, err = ss.Channel().GetDeleted(o1.TeamId, 1, 1)
if err != nil {
t.Fatal(err)
}
list = cresult.Data.(*model.ChannelList)
if len(*list) != 1 {
t.Fatal("wrong list length")

Просмотреть файл

@@ -471,19 +471,28 @@ func (_m *ChannelStore) GetChannelsByScheme(schemeId string, offset int, limit i
}
// GetDeleted provides a mock function with given fields: team_id, offset, limit
func (_m *ChannelStore) GetDeleted(team_id string, offset int, limit int) store.StoreChannel {
func (_m *ChannelStore) GetDeleted(team_id string, offset int, limit int) (*model.ChannelList, *model.AppError) {
ret := _m.Called(team_id, offset, limit)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string, int, int) store.StoreChannel); ok {
var r0 *model.ChannelList
if rf, ok := ret.Get(0).(func(string, int, int) *model.ChannelList); ok {
r0 = rf(team_id, offset, limit)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).(*model.ChannelList)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
r1 = rf(team_id, offset, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetDeletedByName provides a mock function with given fields: team_id, name