Files
mcma-webui/src/api/endpoints/admin.ts
T
2026-06-03 10:41:53 +03:00

47 lines
1.1 KiB
TypeScript

import { api } from '../index';
import type { User } from '../types';
export const adminApi = api.injectEndpoints({
endpoints: (build) => ({
getUsers: build.query<User[], void>({
query: () => '/admin/users',
providesTags: ['User'],
}),
createUser: build.mutation<
User,
{
username: string;
password: string;
email?: string;
role: 'admin' | 'user';
}
>({
query: (body) => ({ url: '/admin/users', method: 'POST', body }),
invalidatesTags: ['User'],
}),
updateUser: build.mutation<
User,
{ id: string; role?: 'admin' | 'user'; email?: string }
>({
query: ({ id, ...body }) => ({
url: `/admin/users/${id}`,
method: 'PATCH',
body,
}),
invalidatesTags: ['User'],
}),
deleteUser: build.mutation<void, string>({
query: (id) => ({ url: `/admin/users/${id}`, method: 'DELETE' }),
invalidatesTags: ['User'],
}),
}),
overrideExisting: false,
});
export const {
useGetUsersQuery,
useCreateUserMutation,
useUpdateUserMutation,
useDeleteUserMutation,
} = adminApi;