35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
|
|
import axios from "@/config/axios";
|
||
|
|
import { API_ENDPOINTS } from "@/config/api";
|
||
|
|
import type { UserProfile } from "@/types/user-profile";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Lấy danh sách thông tin người dùng và chuyển sang camelCase keys
|
||
|
|
*/
|
||
|
|
export async function getUsersInfo(): Promise<UserProfile[]> {
|
||
|
|
try {
|
||
|
|
const response = await axios.get<any[]>(API_ENDPOINTS.AUTH.GET_USERS_LIST);
|
||
|
|
const list = Array.isArray(response.data) ? response.data : [];
|
||
|
|
|
||
|
|
return list.map((u: any) => ({
|
||
|
|
userName: u.userName ?? u.UserName ?? "",
|
||
|
|
name: u.name ?? u.Name ?? "",
|
||
|
|
role: u.role ?? u.Role ?? "",
|
||
|
|
roleId: u.roleId !== undefined ? Number(u.roleId) : u.RoleId !== undefined ? Number(u.RoleId) : 0,
|
||
|
|
accessRooms: Array.isArray(u.accessRooms)
|
||
|
|
? u.accessRooms.map((v: any) => Number(v))
|
||
|
|
: Array.isArray(u.AccessRooms)
|
||
|
|
? u.AccessRooms.map((v: any) => Number(v))
|
||
|
|
: [],
|
||
|
|
createdAt: u.createdAt ?? u.CreatedAt ?? null,
|
||
|
|
createdBy: u.createdBy ?? u.CreatedBy ?? null,
|
||
|
|
updatedAt: u.updatedAt ?? u.UpdatedAt ?? null,
|
||
|
|
updatedBy: u.updatedBy ?? u.UpdatedBy ?? null,
|
||
|
|
} as UserProfile));
|
||
|
|
} catch (error) {
|
||
|
|
console.error("getUsersInfo error:", error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export default { getUsersInfo };
|