mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-16 05:13:43 +00:00
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
|
|
import { apiRequest } from "@app/config/request";
|
|
|
|
import { organizationKeys } from "../organization/queries";
|
|
import { User } from "../users/types";
|
|
import { adminQueryKeys } from "./queries";
|
|
import { TCreateAdminUserDTO, TServerConfig } from "./types";
|
|
|
|
export const useCreateAdminUser = () => {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation<
|
|
{ user: User; token: string; organization: { id: string } },
|
|
{},
|
|
TCreateAdminUserDTO
|
|
>({
|
|
mutationFn: async (opt) => {
|
|
const { data } = await apiRequest.post("/api/v1/admin/signup", opt);
|
|
return data;
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries(adminQueryKeys.serverConfig());
|
|
}
|
|
});
|
|
};
|
|
|
|
export const useUpdateServerConfig = () => {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation<TServerConfig, {}, Partial<TServerConfig>>({
|
|
mutationFn: async (opt) => {
|
|
const { data } = await apiRequest.patch<{ config: TServerConfig }>(
|
|
"/api/v1/admin/config",
|
|
opt
|
|
);
|
|
return data.config;
|
|
},
|
|
onSuccess: (data) => {
|
|
queryClient.setQueryData(adminQueryKeys.serverConfig(), data);
|
|
queryClient.invalidateQueries(adminQueryKeys.serverConfig());
|
|
queryClient.invalidateQueries(organizationKeys.getUserOrganizations);
|
|
}
|
|
});
|
|
};
|