Migrate Team.GetMembers to Sync by default (#11142)

This commit is contained in:
Rodrigo Villablanca Vásquez
2019-06-12 17:31:31 -04:00
committed by Hanzei
parent 2f7ef70d0f
commit 0dab9fe869
5 changed files with 43 additions and 47 deletions

View File

@@ -709,11 +709,7 @@ func (a *App) GetTeamMembersForUserWithPagination(userId string, page, perPage i
}
func (a *App) GetTeamMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
result := <-a.Srv.Store.Team().GetMembers(teamId, offset, limit, restrictions)
if result.Err != nil {
return nil, result.Err
}
return result.Data.([]*model.TeamMember), nil
return a.Srv.Store.Team().GetMembers(teamId, offset, limit, restrictions)
}
func (a *App) GetTeamMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {

View File

@@ -621,31 +621,27 @@ func (s SqlTeamStore) GetMember(teamId string, userId string) store.StoreChannel
})
}
func (s SqlTeamStore) GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
query := s.getTeamMembersWithSchemeSelectQuery().
Where(sq.Eq{"TeamMembers.TeamId": teamId}).
Where(sq.Eq{"TeamMembers.DeleteAt": 0}).
Limit(uint64(limit)).
Offset(uint64(offset))
func (s SqlTeamStore) GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
query := s.getTeamMembersWithSchemeSelectQuery().
Where(sq.Eq{"TeamMembers.TeamId": teamId}).
Where(sq.Eq{"TeamMembers.DeleteAt": 0}).
Limit(uint64(limit)).
Offset(uint64(offset))
query = applyTeamMemberViewRestrictionsFilter(query, teamId, restrictions)
query = applyTeamMemberViewRestrictionsFilter(query, teamId, restrictions)
queryString, args, err := query.ToSql()
if err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetMembers", "store.sql_team.get_members.app_error", nil, err.Error(), http.StatusInternalServerError)
return
}
queryString, args, err := query.ToSql()
if err != nil {
return nil, model.NewAppError("SqlTeamStore.GetMembers", "store.sql_team.get_members.app_error", nil, err.Error(), http.StatusInternalServerError)
}
var dbMembers teamMemberWithSchemeRolesList
_, err = s.GetReplica().Select(&dbMembers, queryString, args...)
if err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetMembers", "store.sql_team.get_members.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
return
}
var dbMembers teamMemberWithSchemeRolesList
_, err = s.GetReplica().Select(&dbMembers, queryString, args...)
if err != nil {
return nil, model.NewAppError("SqlTeamStore.GetMembers", "store.sql_team.get_members.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
}
result.Data = dbMembers.ToModel()
})
return dbMembers.ToModel(), nil
}
func (s SqlTeamStore) GetTotalMemberCount(teamId string) store.StoreChannel {

View File

@@ -103,7 +103,7 @@ type TeamStore interface {
SaveMember(member *model.TeamMember, maxUsersPerTeam int) StoreChannel
UpdateMember(member *model.TeamMember) StoreChannel
GetMember(teamId string, userId string) StoreChannel
GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) StoreChannel
GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError)
GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) StoreChannel
GetTotalMemberCount(teamId string) StoreChannel
GetActiveMemberCount(teamId string) StoreChannel

View File

@@ -327,19 +327,28 @@ func (_m *TeamStore) GetMember(teamId string, userId string) store.StoreChannel
}
// GetMembers provides a mock function with given fields: teamId, offset, limit, restrictions
func (_m *TeamStore) GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) store.StoreChannel {
func (_m *TeamStore) GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, offset, limit, restrictions)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string, int, int, *model.ViewUsersRestrictions) store.StoreChannel); ok {
var r0 []*model.TeamMember
if rf, ok := ret.Get(0).(func(string, int, int, *model.ViewUsersRestrictions) []*model.TeamMember); ok {
r0 = rf(teamId, offset, limit, restrictions)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).([]*model.TeamMember)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int, *model.ViewUsersRestrictions) *model.AppError); ok {
r1 = rf(teamId, offset, limit, restrictions)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetMembersByIds provides a mock function with given fields: teamId, userIds, restrictions

View File

@@ -798,17 +798,15 @@ func testTeamMembers(t *testing.T, ss store.Store) {
store.Must(ss.Team().SaveMember(m2, -1))
store.Must(ss.Team().SaveMember(m3, -1))
if r1 := <-ss.Team().GetMembers(teamId1, 0, 100, nil); r1.Err != nil {
t.Fatal(r1.Err)
if ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil); err != nil {
t.Fatal(err)
} else {
ms := r1.Data.([]*model.TeamMember)
require.Len(t, ms, 2)
}
if r1 := <-ss.Team().GetMembers(teamId2, 0, 100, nil); r1.Err != nil {
t.Fatal(r1.Err)
if ms, err := ss.Team().GetMembers(teamId2, 0, 100, nil); err != nil {
t.Fatal(err)
} else {
ms := r1.Data.([]*model.TeamMember)
require.Len(t, ms, 1)
require.Equal(t, m3.UserId, ms[0].UserId)
@@ -827,10 +825,9 @@ func testTeamMembers(t *testing.T, ss store.Store) {
t.Fatal(r1.Err)
}
if r1 := <-ss.Team().GetMembers(teamId1, 0, 100, nil); r1.Err != nil {
t.Fatal(r1.Err)
if ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil); err != nil {
t.Fatal(err)
} else {
ms := r1.Data.([]*model.TeamMember)
require.Len(t, ms, 1)
require.Equal(t, m2.UserId, ms[0].UserId)
@@ -842,10 +839,9 @@ func testTeamMembers(t *testing.T, ss store.Store) {
t.Fatal(r1.Err)
}
if r1 := <-ss.Team().GetMembers(teamId1, 0, 100, nil); r1.Err != nil {
t.Fatal(r1.Err)
if ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil); err != nil {
t.Fatal(err)
} else {
ms := r1.Data.([]*model.TeamMember)
require.Len(t, ms, 0)
}
@@ -901,10 +897,9 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) {
r1 = <-ss.Team().RemoveMember(teamId1, m1.UserId)
require.Nil(t, r1.Err)
r1 = <-ss.Team().GetMembers(teamId1, 0, 100, nil)
require.Nil(t, r1.Err)
ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil)
require.Nil(t, err)
ms = r1.Data.([]*model.TeamMember)
require.Len(t, ms, 1)
require.Equal(t, m2.UserId, ms[0].UserId)