diff --git a/src/constant/routes.ts b/src/constant/routes.ts index be72bbb..e956083 100644 --- a/src/constant/routes.ts +++ b/src/constant/routes.ts @@ -11,11 +11,11 @@ export const API_ROUTES = { GET_DRAFT_DETAIL: (id: string) => `api/v1/drafts/${id}`, // Admin Users APIs - GET_ADMIN_USERS: "api/v1/admin/users", - GET_ADMIN_USER: (id: string) => `api/v1/admin/users/${id}`, - CREATE_ADMIN_USER: "api/v1/admin/users", - UPDATE_ADMIN_USER: (id: string) => `api/v1/admin/users/${id}`, - DELETE_ADMIN_USER: (id: string) => `api/v1/admin/users/${id}`, + GET_ADMIN_USERS: "api/v1/admin/admin-users", + GET_ADMIN_USER: (id: string) => `api/v1/admin/admin-users/${id}`, + CREATE_ADMIN_USER: "api/v1/admin/admin-users", + UPDATE_ADMIN_USER: (id: string) => `api/v1/admin/admin-users/${id}`, + DELETE_ADMIN_USER: (id: string) => `api/v1/admin/admin-users/${id}`, // Roles APIs GET_ROLES: "api/v1/admin/roles", diff --git a/src/pages/roles/core/_hooks.ts b/src/pages/roles/core/_hooks.ts index adc81ec..980b809 100644 --- a/src/pages/roles/core/_hooks.ts +++ b/src/pages/roles/core/_hooks.ts @@ -11,14 +11,14 @@ import { removePermissionFromRole, getAllPermissions, } from "./_requests"; -import { CreateRoleRequest, UpdateRoleRequest } from "./_models"; +import { CreateRoleRequest, UpdateRoleRequest, RoleFilters } from "./_models"; import { Role } from "@/types/auth"; import toast from "react-hot-toast"; -export const useRoles = () => { +export const useRoles = (filters?: RoleFilters) => { return useQuery({ - queryKey: [QUERY_KEYS.GET_ROLES], - queryFn: () => getRoles(), + queryKey: [QUERY_KEYS.GET_ROLES, filters], + queryFn: () => getRoles(filters), }); }; diff --git a/src/pages/roles/core/_models.ts b/src/pages/roles/core/_models.ts index 6cca602..7ad0a6d 100644 --- a/src/pages/roles/core/_models.ts +++ b/src/pages/roles/core/_models.ts @@ -1,5 +1,11 @@ import { Role, Permission } from "@/types/auth"; +export interface RoleFilters { + search?: string; + page?: number; + limit?: number; +} + export interface CreateRoleRequest { title: string; description: string; diff --git a/src/pages/roles/core/_requests.ts b/src/pages/roles/core/_requests.ts index c1918bd..b0fe603 100644 --- a/src/pages/roles/core/_requests.ts +++ b/src/pages/roles/core/_requests.ts @@ -13,17 +13,23 @@ import { RoleResponse, DeleteRoleResponse, AssignPermissionResponse, + RoleFilters, } from "./_models"; -export const getRoles = async () => { +export const getRoles = async (filters?: RoleFilters) => { try { + const queryParams: Record = {}; + + if (filters?.search) queryParams.search = filters.search; + if (filters?.page) queryParams.page = filters.page; + if (filters?.limit) queryParams.limit = filters.limit; + const response = await httpGetRequest<{ roles: Role[] | null }>( - APIUrlGenerator(API_ROUTES.GET_ROLES) + APIUrlGenerator(API_ROUTES.GET_ROLES, queryParams) ); console.log("Roles API Response:", response); console.log("Roles data:", response.data); - // ساختار API: {data: {roles: Role[] | null}} if ( response.data && response.data.roles && @@ -32,12 +38,10 @@ export const getRoles = async () => { return response.data.roles; } - // اگر roles null باشد یا آرایه نباشد، آرایه خالی برگردان console.warn("Roles is null or not an array:", response.data); return []; } catch (error) { console.error("Error fetching roles:", error); - // اگر backend کار نمی‌کند، آرایه خالی برگردان return []; } };