mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 17:28:18 +00:00
Update mutations.tsx
This commit is contained in:
@@ -3,128 +3,104 @@ import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|||||||
import { apiRequest } from "@app/config/request";
|
import { apiRequest } from "@app/config/request";
|
||||||
|
|
||||||
import { organizationKeys } from "../organization/queries";
|
import { organizationKeys } from "../organization/queries";
|
||||||
|
import { userKeys } from "../users/queries";
|
||||||
import { groupKeys } from "./queries";
|
import { groupKeys } from "./queries";
|
||||||
import { TGroup } from "./types";
|
import { TGroup } from "./types";
|
||||||
|
|
||||||
export const useCreateGroup = () => {
|
export const useCreateGroup = () => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async ({
|
mutationFn: async ({
|
||||||
name,
|
name,
|
||||||
slug,
|
slug,
|
||||||
role
|
role
|
||||||
}: {
|
}: {
|
||||||
name: string;
|
name: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
role?: string;
|
role?: string;
|
||||||
}) => {
|
}) => {
|
||||||
const {
|
const { data: group } = await apiRequest.post<TGroup>("/api/v1/groups", {
|
||||||
data: group
|
name,
|
||||||
} = await apiRequest.post<TGroup>("/api/v1/groups", {
|
slug,
|
||||||
name,
|
role
|
||||||
slug,
|
});
|
||||||
role
|
|
||||||
});
|
return group;
|
||||||
|
},
|
||||||
return group;
|
onSuccess: (_, { organizationId }) => {
|
||||||
},
|
queryClient.invalidateQueries(organizationKeys.getOrgGroups(organizationId));
|
||||||
onSuccess: (_, { organizationId }) => {
|
}
|
||||||
queryClient.invalidateQueries(organizationKeys.getOrgGroups(organizationId));
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useUpdateGroup = () => {
|
export const useUpdateGroup = () => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async ({
|
mutationFn: async ({
|
||||||
currentSlug,
|
currentSlug,
|
||||||
name,
|
name,
|
||||||
slug,
|
slug,
|
||||||
role
|
role
|
||||||
}: {
|
}: {
|
||||||
currentSlug: string;
|
currentSlug: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
slug?: string;
|
slug?: string;
|
||||||
role?: string;
|
role?: string;
|
||||||
}) => {
|
}) => {
|
||||||
const {
|
const { data: group } = await apiRequest.patch<TGroup>(`/api/v1/groups/${currentSlug}`, {
|
||||||
data: group
|
name,
|
||||||
} = await apiRequest.patch<TGroup>(`/api/v1/groups/${currentSlug}`, {
|
slug,
|
||||||
name,
|
role
|
||||||
slug,
|
});
|
||||||
role
|
|
||||||
});
|
return group;
|
||||||
|
},
|
||||||
return group;
|
onSuccess: ({ orgId }) => {
|
||||||
},
|
queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId));
|
||||||
onSuccess: ({ orgId }) => {
|
}
|
||||||
queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId));
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useDeleteGroup = () => {
|
export const useDeleteGroup = () => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async ({
|
mutationFn: async ({ slug }: { slug: string }) => {
|
||||||
slug
|
const { data: group } = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}`);
|
||||||
}: {
|
|
||||||
slug: string;
|
|
||||||
}) => {
|
|
||||||
const {
|
|
||||||
data: group
|
|
||||||
} = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}`);
|
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
},
|
},
|
||||||
onSuccess: ({ orgId }) => {
|
onSuccess: ({ orgId }) => {
|
||||||
queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId));
|
queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useAddUserToGroup = () => {
|
export const useAddUserToGroup = () => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async ({
|
mutationFn: async ({ slug, username }: { slug: string; username: string }) => {
|
||||||
slug,
|
const { data } = await apiRequest.post<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
||||||
username
|
|
||||||
}: {
|
|
||||||
slug: string;
|
|
||||||
username: string;
|
|
||||||
}) => {
|
|
||||||
const {
|
|
||||||
data
|
|
||||||
} = await apiRequest.post<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
onSuccess: (_, { slug }) => {
|
onSuccess: (_, { slug }) => {
|
||||||
queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug));
|
queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useRemoveUserFromGroup = () => {
|
export const useRemoveUserFromGroup = () => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async ({
|
mutationFn: async ({ slug, username }: { slug: string; username: string }) => {
|
||||||
slug,
|
const { data } = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
||||||
username
|
|
||||||
}: {
|
|
||||||
slug: string;
|
|
||||||
username: string;
|
|
||||||
}) => {
|
|
||||||
const {
|
|
||||||
data
|
|
||||||
} = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
onSuccess: (_, { slug }) => {
|
onSuccess: (_, { slug, username }) => {
|
||||||
queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug));
|
queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug));
|
||||||
}
|
queryClient.invalidateQueries(userKeys.listUserGroupMemberships(username));
|
||||||
});
|
}
|
||||||
};
|
});
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user