diff --git a/app/team.go b/app/team.go index e1e2786ea6..5406823e8c 100644 --- a/app/team.go +++ b/app/team.go @@ -675,11 +675,7 @@ func (a *App) GetTeamMembersForUser(userId string) ([]*model.TeamMember, *model. } func (a *App) GetTeamMembersForUserWithPagination(userId string, page, perPage int) ([]*model.TeamMember, *model.AppError) { - result := <-a.Srv.Store.Team().GetTeamsForUserWithPagination(userId, page, perPage) - if result.Err != nil { - return nil, result.Err - } - return result.Data.([]*model.TeamMember), nil + return a.Srv.Store.Team().GetTeamsForUserWithPagination(userId, page, perPage) } func (a *App) GetTeamMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) { diff --git a/store/sqlstore/team_store.go b/store/sqlstore/team_store.go index 352f66625b..faeb3e2950 100644 --- a/store/sqlstore/team_store.go +++ b/store/sqlstore/team_store.go @@ -711,28 +711,24 @@ func (s SqlTeamStore) GetTeamsForUser(userId string) ([]*model.TeamMember, *mode return dbMembers.ToModel(), nil } -func (s SqlTeamStore) GetTeamsForUserWithPagination(userId string, page, perPage int) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - query := s.getTeamMembersWithSchemeSelectQuery(). - Where(sq.Eq{"TeamMembers.UserId": userId}). - Limit(uint64(perPage)). - Offset(uint64(page * perPage)) +func (s SqlTeamStore) GetTeamsForUserWithPagination(userId string, page, perPage int) ([]*model.TeamMember, *model.AppError) { + query := s.getTeamMembersWithSchemeSelectQuery(). + Where(sq.Eq{"TeamMembers.UserId": userId}). + Limit(uint64(perPage)). + Offset(uint64(page * perPage)) - queryString, args, err := query.ToSql() - if err != nil { - result.Err = model.NewAppError("SqlTeamStore.GetTeamsForUserWithPagination", "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.GetTeamsForUserWithPagination", "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.GetTeamsForUserWithPagination", "store.sql_team.get_members.app_error", nil, "userId="+userId+" "+err.Error(), http.StatusInternalServerError) - return - } + var dbMembers teamMemberWithSchemeRolesList + _, err = s.GetReplica().Select(&dbMembers, queryString, args...) + if err != nil { + return nil, model.NewAppError("SqlTeamStore.GetTeamsForUserWithPagination", "store.sql_team.get_members.app_error", nil, "userId="+userId+" "+err.Error(), http.StatusInternalServerError) + } - result.Data = dbMembers.ToModel() - }) + return dbMembers.ToModel(), nil } func (s SqlTeamStore) GetChannelUnreadsForAllTeams(excludeTeamId, userId string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index 9d32c0ee7f..7eb51bf27d 100644 --- a/store/store.go +++ b/store/store.go @@ -108,7 +108,7 @@ type TeamStore interface { GetTotalMemberCount(teamId string) (int64, *model.AppError) GetActiveMemberCount(teamId string) (int64, *model.AppError) GetTeamsForUser(userId string) ([]*model.TeamMember, *model.AppError) - GetTeamsForUserWithPagination(userId string, page, perPage int) StoreChannel + GetTeamsForUserWithPagination(userId string, page, perPage int) ([]*model.TeamMember, *model.AppError) GetChannelUnreadsForAllTeams(excludeTeamId, userId string) StoreChannel GetChannelUnreadsForTeam(teamId, userId string) ([]*model.ChannelUnread, *model.AppError) RemoveMember(teamId string, userId string) StoreChannel diff --git a/store/storetest/mocks/TeamStore.go b/store/storetest/mocks/TeamStore.go index d6ffe57c36..6fb8bd1b92 100644 --- a/store/storetest/mocks/TeamStore.go +++ b/store/storetest/mocks/TeamStore.go @@ -509,19 +509,28 @@ func (_m *TeamStore) GetTeamsForUser(userId string) ([]*model.TeamMember, *model } // GetTeamsForUserWithPagination provides a mock function with given fields: userId, page, perPage -func (_m *TeamStore) GetTeamsForUserWithPagination(userId string, page int, perPage int) store.StoreChannel { +func (_m *TeamStore) GetTeamsForUserWithPagination(userId string, page int, perPage int) ([]*model.TeamMember, *model.AppError) { ret := _m.Called(userId, page, perPage) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, int, int) store.StoreChannel); ok { + var r0 []*model.TeamMember + if rf, ok := ret.Get(0).(func(string, int, int) []*model.TeamMember); ok { r0 = rf(userId, page, perPage) } 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.AppError); ok { + r1 = rf(userId, page, perPage) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetTotalMemberCount provides a mock function with given fields: teamId diff --git a/store/storetest/team_store.go b/store/storetest/team_store.go index 598ddf73d5..adf8cebb43 100644 --- a/store/storetest/team_store.go +++ b/store/storetest/team_store.go @@ -869,9 +869,8 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) { store.Must(ss.Team().SaveMember(m2, -1)) store.Must(ss.Team().SaveMember(m3, -1)) - r1 = <-ss.Team().GetTeamsForUserWithPagination(m1.UserId, 0, 1) - require.Nil(t, r1.Err) - ms := r1.Data.([]*model.TeamMember) + ms, errTeam := ss.Team().GetTeamsForUserWithPagination(m1.UserId, 0, 1) + require.Nil(t, errTeam) require.Len(t, ms, 1) require.Equal(t, m1.TeamId, ms[0].TeamId) @@ -896,18 +895,16 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) { store.Must(ss.Team().SaveMember(m4, -1)) store.Must(ss.Team().SaveMember(m5, -1)) - r1 = <-ss.Team().GetTeamsForUserWithPagination(uid, 0, 1) - require.Nil(t, r1.Err) - ms = r1.Data.([]*model.TeamMember) - require.Len(t, ms, 1) + result, err := ss.Team().GetTeamsForUserWithPagination(uid, 0, 1) + require.Nil(t, err) + require.Len(t, result, 1) r1 = <-ss.Team().RemoveAllMembersByUser(uid) require.Nil(t, r1.Err) - r1 = <-ss.Team().GetTeamsForUserWithPagination(uid, 1, 1) - require.Nil(t, r1.Err) - ms = r1.Data.([]*model.TeamMember) - require.Len(t, ms, 0) + result, err = ss.Team().GetTeamsForUserWithPagination(uid, 1, 1) + require.Nil(t, err) + require.Len(t, result, 0) } func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {