diff --git a/frontend/src/hooks/api/users/index.tsx b/frontend/src/hooks/api/users/index.tsx index ed9e5cc47..fb4c2d1ce 100644 --- a/frontend/src/hooks/api/users/index.tsx +++ b/frontend/src/hooks/api/users/index.tsx @@ -21,6 +21,7 @@ export { useGetOrgUsers, useGetUser, useGetUserAction, + useListUserGroupMemberships, useLogoutUser, useRegisterUserAction, useRevokeMySessions, diff --git a/frontend/src/hooks/api/users/queries.tsx b/frontend/src/hooks/api/users/queries.tsx index ead567bee..27878f624 100644 --- a/frontend/src/hooks/api/users/queries.tsx +++ b/frontend/src/hooks/api/users/queries.tsx @@ -5,6 +5,7 @@ import { SessionStorageKeys } from "@app/const"; import { setAuthToken } from "@app/reactQuery"; import { APIKeyDataV2 } from "../apiKeys/types"; +import { TGroupWithProjectMemberships } from "../groups/types"; import { AddUserToOrgDTO, APIKeyData, @@ -38,6 +39,7 @@ export const userKeys = { myAPIKeysV2: ["api-keys-v2"] as const, mySessions: ["sessions"] as const, listUsers: ["user-list"] as const, + listUserGroupMemberships: (username: string) => ["user-group-memberships", username] as const, myOrganizationProjects: (orgId: string) => [{ orgId }, "organization-projects"] as const }; @@ -444,3 +446,16 @@ export const fetchMyPrivateKey = async () => { return privateKey; }; + +export const useListUserGroupMemberships = (username: string) => { + return useQuery({ + queryKey: userKeys.listUserGroupMemberships(username), + queryFn: async () => { + const { data } = await apiRequest.get( + `/api/v1/user/me/${username}/groups` + ); + + return data; + } + }); +};