Files
lotteryAdmin/src/api/admin-users.ts
kang ce27a3ec8a feat(admin, i18n): enhance admin dashboard and user management with new features and translations
Added the ability to filter admin dashboard data by site code and agent node ID, improving data retrieval capabilities. Introduced new functions for fetching dashboard data based on these parameters. Updated the admin users and roles management components to reflect these changes. Enhanced multi-language support by adding new translations for agent management and permission levels in English, Nepali, and Chinese, ensuring a consistent user experience across the admin interface.
2026-06-03 10:07:51 +08:00

90 lines
2.7 KiB
TypeScript

import { adminRequest } from "@/lib/admin-http";
import type {
AdminPermissionCatalogData,
AdminRoleCreatePayload,
AdminRoleDeleteResult,
AdminRoleListData,
AdminRoleRow,
AdminRoleUpdatePayload,
AdminUserCreatePayload,
AdminUserDeleteResult,
AdminUserPermissionListData,
AdminUserPermissionRow,
AdminUserRoleSyncData,
AdminUserUpdatePayload,
} from "@/types/api/admin-user";
const A = `/admin`;
export async function getAdminUsers(params?: {
page?: number;
per_page?: number;
keyword?: string;
}): Promise<AdminUserPermissionListData> {
return adminRequest.get<AdminUserPermissionListData>(`${A}/admin-users`, {
params,
});
}
export async function getAdminUserPermissionCatalog(): Promise<AdminPermissionCatalogData> {
return adminRequest.get<AdminPermissionCatalogData>(`${A}/admin-user-permission-catalog`);
}
export async function getAdminRoles(): Promise<AdminRoleListData> {
return adminRequest.get<AdminRoleListData>(`${A}/admin-roles`);
}
export async function getAdminUser(adminUserId: number): Promise<AdminUserPermissionRow> {
return adminRequest.get<AdminUserPermissionRow>(`${A}/admin-users/${adminUserId}`);
}
export async function postAdminUser(body: AdminUserCreatePayload): Promise<AdminUserPermissionRow> {
return adminRequest.post<AdminUserPermissionRow>(`${A}/admin-users`, body);
}
export async function putAdminUser(
adminUserId: number,
body: AdminUserUpdatePayload,
): Promise<AdminUserPermissionRow> {
return adminRequest.put<AdminUserPermissionRow>(`${A}/admin-users/${adminUserId}`, body);
}
export async function deleteAdminUser(adminUserId: number): Promise<AdminUserDeleteResult> {
return adminRequest.delete<AdminUserDeleteResult>(`${A}/admin-users/${adminUserId}`);
}
export async function postAdminRole(body: AdminRoleCreatePayload): Promise<AdminRoleRow> {
return adminRequest.post<AdminRoleRow>(`${A}/admin-roles`, body);
}
export async function putAdminRole(
roleId: number,
body: AdminRoleUpdatePayload,
): Promise<AdminRoleRow> {
return adminRequest.put<AdminRoleRow>(`${A}/admin-roles/${roleId}`, body);
}
export async function deleteAdminRole(roleId: number): Promise<AdminRoleDeleteResult> {
return adminRequest.delete<AdminRoleDeleteResult>(`${A}/admin-roles/${roleId}`);
}
export async function putAdminRolePermissions(
roleId: number,
permissionSlugs: string[],
): Promise<AdminRoleRow> {
return adminRequest.put<AdminRoleRow>(`${A}/admin-roles/${roleId}/permissions`, {
permission_slugs: permissionSlugs,
});
}
export async function putAdminUserRoles(
adminUserId: number,
roleSlugs: string[],
): Promise<AdminUserRoleSyncData> {
return adminRequest.put<AdminUserRoleSyncData>(`${A}/admin-users/${adminUserId}/roles`, {
role_slugs: roleSlugs,
});
}