66 lines
2.4 KiB
TypeScript
66 lines
2.4 KiB
TypeScript
import { apiRequest } from "@/shared/api/request";
|
|
import { API_ENDPOINTS, API_OPERATIONS, apiEndpointPath } from "@/shared/api/generated/endpoints";
|
|
import type {
|
|
AdminUserDto,
|
|
ApiPage,
|
|
CreateUserResultDto,
|
|
EntityId,
|
|
PageQuery,
|
|
ResetPasswordResultDto,
|
|
UserFormPayload,
|
|
UserStatus,
|
|
UserUpdatePayload
|
|
} from "@/shared/api/types";
|
|
|
|
export function listUsers(query?: PageQuery): Promise<ApiPage<AdminUserDto>> {
|
|
return apiRequest<ApiPage<AdminUserDto>>(apiEndpointPath(API_OPERATIONS.listUsers), { query });
|
|
}
|
|
|
|
export function getUser(id: EntityId): Promise<AdminUserDto> {
|
|
return apiRequest<AdminUserDto>(apiEndpointPath(API_OPERATIONS.getUser, { id }));
|
|
}
|
|
|
|
export function createUser(payload: UserFormPayload): Promise<CreateUserResultDto> {
|
|
const endpoint = API_ENDPOINTS.createUser;
|
|
return apiRequest<CreateUserResultDto, UserFormPayload>(apiEndpointPath(API_OPERATIONS.createUser), {
|
|
body: payload,
|
|
method: endpoint.method
|
|
});
|
|
}
|
|
|
|
export function updateUser(id: EntityId, payload: UserUpdatePayload): Promise<AdminUserDto> {
|
|
const endpoint = API_ENDPOINTS.updateUser;
|
|
return apiRequest<AdminUserDto, UserUpdatePayload>(apiEndpointPath(API_OPERATIONS.updateUser, { id }), {
|
|
body: payload,
|
|
method: endpoint.method
|
|
});
|
|
}
|
|
|
|
export function updateUserStatus(id: EntityId, status: UserStatus): Promise<AdminUserDto> {
|
|
const endpoint = API_ENDPOINTS.updateUserStatus;
|
|
return apiRequest<AdminUserDto, { status: UserStatus }>(apiEndpointPath(API_OPERATIONS.updateUserStatus, { id }), {
|
|
body: { status },
|
|
method: endpoint.method
|
|
});
|
|
}
|
|
|
|
export function resetUserPassword(id: EntityId, password?: string): Promise<ResetPasswordResultDto> {
|
|
const endpoint = API_ENDPOINTS.resetUserPassword;
|
|
return apiRequest<ResetPasswordResultDto, { password?: string }>(apiEndpointPath(API_OPERATIONS.resetUserPassword, { id }), {
|
|
body: { password },
|
|
method: endpoint.method
|
|
});
|
|
}
|
|
|
|
export function batchUpdateUserStatus(ids: EntityId[], status: UserStatus): Promise<unknown> {
|
|
const endpoint = API_ENDPOINTS.batchUpdateUserStatus;
|
|
return apiRequest<unknown, { ids: EntityId[]; status: UserStatus }>(apiEndpointPath(API_OPERATIONS.batchUpdateUserStatus), {
|
|
body: { ids, status },
|
|
method: endpoint.method
|
|
});
|
|
}
|
|
|
|
export function exportUsers(query?: PageQuery): Promise<Response> {
|
|
return apiRequest(apiEndpointPath(API_OPERATIONS.exportUsers), { query, raw: true });
|
|
}
|