Migrate Team.GetMembersByIds to Sync by default (#11145)

* Migrate Team.GetMembersByIds to Sync by default

* Requested change
Этот коммит содержится в:
Rodrigo Villablanca Vásquez
2019-06-13 01:02:20 -04:00
коммит произвёл Jesús Espino
родитель 0dab9fe869
Коммит 784a34318f
5 изменённых файлов: 40 добавлений и 40 удалений

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

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

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

@@ -687,32 +687,28 @@ func (s SqlTeamStore) GetActiveMemberCount(teamId string) store.StoreChannel {
}) })
} }
func (s SqlTeamStore) GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) store.StoreChannel { func (s SqlTeamStore) GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
return store.Do(func(result *store.StoreResult) { if len(userIds) == 0 {
if len(userIds) == 0 { return nil, model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, "Invalid list of user ids", http.StatusInternalServerError)
result.Err = model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, "Invalid list of user ids", http.StatusInternalServerError) }
}
query := s.getTeamMembersWithSchemeSelectQuery(). query := s.getTeamMembersWithSchemeSelectQuery().
Where(sq.Eq{"TeamMembers.TeamId": teamId}). Where(sq.Eq{"TeamMembers.TeamId": teamId}).
Where(sq.Eq{"TeamMembers.UserId": userIds}). Where(sq.Eq{"TeamMembers.UserId": userIds}).
Where(sq.Eq{"TeamMembers.DeleteAt": 0}) Where(sq.Eq{"TeamMembers.DeleteAt": 0})
query = applyTeamMemberViewRestrictionsFilter(query, teamId, restrictions) query = applyTeamMemberViewRestrictionsFilter(query, teamId, restrictions)
queryString, args, err := query.ToSql() queryString, args, err := query.ToSql()
if err != nil { if err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, err.Error(), http.StatusInternalServerError)
return }
}
var dbMembers teamMemberWithSchemeRolesList var dbMembers teamMemberWithSchemeRolesList
if _, err := s.GetReplica().Select(&dbMembers, queryString, args...); err != nil { if _, err := s.GetReplica().Select(&dbMembers, queryString, args...); err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("SqlTeamStore.GetMembersByIds", "store.sql_team.get_members_by_ids.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
return }
} return dbMembers.ToModel(), nil
result.Data = dbMembers.ToModel()
})
} }
func (s SqlTeamStore) GetTeamsForUser(userId string) store.StoreChannel { func (s SqlTeamStore) GetTeamsForUser(userId string) store.StoreChannel {

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

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

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

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

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

@@ -1113,10 +1113,10 @@ func testGetTeamMembersByIds(t *testing.T, ss store.Store) {
m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()} m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()}
store.Must(ss.Team().SaveMember(m1, -1)) store.Must(ss.Team().SaveMember(m1, -1))
if r := <-ss.Team().GetMembersByIds(m1.TeamId, []string{m1.UserId}, nil); r.Err != nil { if r, err := ss.Team().GetMembersByIds(m1.TeamId, []string{m1.UserId}, nil); err != nil {
t.Fatal(r.Err) t.Fatal(err)
} else { } else {
rm1 := r.Data.([]*model.TeamMember)[0] rm1 := r[0]
if rm1.TeamId != m1.TeamId { if rm1.TeamId != m1.TeamId {
t.Fatal("bad team id") t.Fatal("bad team id")
@@ -1130,17 +1130,16 @@ func testGetTeamMembersByIds(t *testing.T, ss store.Store) {
m2 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()} m2 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()}
store.Must(ss.Team().SaveMember(m2, -1)) store.Must(ss.Team().SaveMember(m2, -1))
if r := <-ss.Team().GetMembersByIds(m1.TeamId, []string{m1.UserId, m2.UserId, model.NewId()}, nil); r.Err != nil { if rm, err := ss.Team().GetMembersByIds(m1.TeamId, []string{m1.UserId, m2.UserId, model.NewId()}, nil); err != nil {
t.Fatal(r.Err) t.Fatal(err)
} else { } else {
rm := r.Data.([]*model.TeamMember)
if len(rm) != 2 { if len(rm) != 2 {
t.Fatal("return wrong number of results") t.Fatal("return wrong number of results")
} }
} }
if r := <-ss.Team().GetMembersByIds(m1.TeamId, []string{}, nil); r.Err == nil { if _, err := ss.Team().GetMembersByIds(m1.TeamId, []string{}, nil); err == nil {
t.Fatal("empty user ids - should have failed") t.Fatal("empty user ids - should have failed")
} }
} }