Teams: Search by team ids (#77730)
* Teams: Search by team ids * Add tests * Fix tests
This commit is contained in:
@@ -212,6 +212,13 @@ func (ss *xormStore) Search(ctx context.Context, query *team.SearchTeamsQuery) (
|
||||
params = append(params, query.Name)
|
||||
}
|
||||
|
||||
if len(query.TeamIds) > 0 {
|
||||
sql.WriteString(` and team.id IN (?` + strings.Repeat(",?", len(query.TeamIds)-1) + ")")
|
||||
for _, id := range query.TeamIds {
|
||||
params = append(params, id)
|
||||
}
|
||||
}
|
||||
|
||||
acFilter, err := ac.Filter(query.SignedInUser, "team.id", "teams:id:", ac.ActionTeamsRead)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -268,6 +268,26 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
||||
require.Equal(t, queryResult.Teams[1].Name, team1.Name)
|
||||
})
|
||||
|
||||
t.Run("Should be able to query teams by ids", func(t *testing.T) {
|
||||
allTeamsQuery := &team.SearchTeamsQuery{OrgID: testOrgID, Query: "", SignedInUser: testUser}
|
||||
allTeamsQueryResult, err := teamSvc.SearchTeams(context.Background(), allTeamsQuery)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(allTeamsQueryResult.Teams), 2)
|
||||
|
||||
teamIds := make([]int64, 0)
|
||||
for _, team := range allTeamsQueryResult.Teams {
|
||||
teamIds = append(teamIds, team.ID)
|
||||
}
|
||||
|
||||
query := &team.SearchTeamsQuery{OrgID: testOrgID, SignedInUser: testUser, TeamIds: teamIds}
|
||||
queryResult, err := teamSvc.SearchTeams(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(queryResult.Teams), 2)
|
||||
require.EqualValues(t, queryResult.TotalCount, 2)
|
||||
require.Equal(t, queryResult.Teams[0].ID, teamIds[0])
|
||||
require.Equal(t, queryResult.Teams[1].ID, teamIds[1])
|
||||
})
|
||||
|
||||
t.Run("Should be able to return all teams a user is member of", func(t *testing.T) {
|
||||
sqlStore = db.InitTestDB(t)
|
||||
setup()
|
||||
|
||||
Reference in New Issue
Block a user