diff --git a/packages/grafana-test-utils/src/handlers/apis/iam.grafana.app/v0alpha1/handlers.ts b/packages/grafana-test-utils/src/handlers/apis/iam.grafana.app/v0alpha1/handlers.ts index e31819f5365..27a0be8cc61 100644 --- a/packages/grafana-test-utils/src/handlers/apis/iam.grafana.app/v0alpha1/handlers.ts +++ b/packages/grafana-test-utils/src/handlers/apis/iam.grafana.app/v0alpha1/handlers.ts @@ -95,9 +95,27 @@ const deleteExternalGroupMapping = () => } ); +const getExternalGroupMappingsHandler = () => + http.get<{ namespace: string; teamId: string }>( + '/apis/iam.grafana.app/v0alpha1/namespaces/:namespace/teams/:teamId/groups', + ({ params }) => { + const teamData = mockTeamsMap.get(params.teamId); + + return HttpResponse.json({ + items: teamData + ? teamData.groups.map((group) => ({ + externalGroup: group.groupId, + name: `mapping-${params.teamId}-${group.groupId}`, + })) + : [], + }); + } + ); + export default [ getDisplayMapping(), listExternalGroupMappings(), createExternalGroupMapping(), deleteExternalGroupMapping(), + getExternalGroupMappingsHandler(), ]; diff --git a/public/app/features/teams/hooks.ts b/public/app/features/teams/hooks.ts index 37b0c4efa0b..ba123f6af14 100644 --- a/public/app/features/teams/hooks.ts +++ b/public/app/features/teams/hooks.ts @@ -4,7 +4,7 @@ import { useEffect, useMemo } from 'react'; import { useCreateExternalGroupMappingMutation, - useListExternalGroupMappingQuery, + useGetTeamGroupsQuery, useDeleteExternalGroupMappingMutation, } from '@grafana/api-clients/rtkq/iam/v0alpha1'; import { @@ -171,20 +171,18 @@ export const useGetExternalGroupMappings = (args: { teamId: string }) => { return useGetTeamGroupsApiQuery(args); } - const { data: newApiData, ...newApiRest } = useListExternalGroupMappingQuery({}); + const { data: newApiData, ...newApiRest } = useGetTeamGroupsQuery({ name: args.teamId }); const groups: TeamGroupDto[] = useMemo(() => { - return (newApiData?.items || []) - .filter((item) => item.spec.teamRef.name === args.teamId) - .map( - (item) => - // eslint-disable-next-line - ({ - groupId: item.spec.externalGroupId, - teamId: item.spec.teamRef.name, - uid: item.metadata.name, - }) as unknown as TeamGroupDto - ); + return (newApiData?.items || []).map( + (item) => + // eslint-disable-next-line + ({ + groupId: item.externalGroup, + teamId: args.teamId, + uid: item.name, + }) as unknown as TeamGroupDto + ); }, [newApiData, args.teamId]); return { @@ -203,8 +201,6 @@ export const useAddExternalGroupMapping = () => { const add = async (args: { teamId: string; teamGroupMapping: { groupId: string } }) => { return addNew({ externalGroupMapping: { - apiVersion: 'iam.grafana.app/v0alpha1', - kind: 'ExternalGroupMapping', metadata: { generateName: 'external-group-mapping-', },