mirror of
https://github.com/coder/coder.git
synced 2026-11-14 18:21:32 +08:00
82 lines
1.9 KiB
TypeScript
82 lines
1.9 KiB
TypeScript
import { QueryClient } from "@tanstack/react-query";
|
|
import * as API from "api/api";
|
|
import { UpdateUserPasswordRequest, UsersRequest } from "api/typesGenerated";
|
|
|
|
export const users = (req: UsersRequest) => {
|
|
return {
|
|
queryKey: ["users", req],
|
|
queryFn: () => API.getUsers(req),
|
|
};
|
|
};
|
|
|
|
export const updatePassword = () => {
|
|
return {
|
|
mutationFn: ({
|
|
userId,
|
|
...request
|
|
}: UpdateUserPasswordRequest & { userId: string }) =>
|
|
API.updateUserPassword(userId, request),
|
|
};
|
|
};
|
|
|
|
export const createUser = (queryClient: QueryClient) => {
|
|
return {
|
|
mutationFn: API.createUser,
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries(["users"]);
|
|
},
|
|
};
|
|
};
|
|
|
|
export const createFirstUser = () => {
|
|
return {
|
|
mutationFn: API.createFirstUser,
|
|
};
|
|
};
|
|
|
|
export const suspendUser = (queryClient: QueryClient) => {
|
|
return {
|
|
mutationFn: API.suspendUser,
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries(["users"]);
|
|
},
|
|
};
|
|
};
|
|
|
|
export const activateUser = (queryClient: QueryClient) => {
|
|
return {
|
|
mutationFn: API.activateUser,
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries(["users"]);
|
|
},
|
|
};
|
|
};
|
|
|
|
export const deleteUser = (queryClient: QueryClient) => {
|
|
return {
|
|
mutationFn: API.deleteUser,
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries(["users"]);
|
|
},
|
|
};
|
|
};
|
|
|
|
export const updateRoles = (queryClient: QueryClient) => {
|
|
return {
|
|
mutationFn: ({ userId, roles }: { userId: string; roles: string[] }) =>
|
|
API.updateUserRoles(roles, userId),
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries(["users"]);
|
|
},
|
|
};
|
|
};
|
|
|
|
export const authMethods = () => {
|
|
return {
|
|
// Even the endpoint being /users/authmethods we don't want to revalidate it
|
|
// when users change so its better add a unique query key
|
|
queryKey: ["authMethods"],
|
|
queryFn: API.getAuthMethods,
|
|
};
|
|
};
|