109 lines
3.1 KiB
TypeScript
109 lines
3.1 KiB
TypeScript
import {
|
|
httpPostInterceptor,
|
|
httpGetInterceptor,
|
|
httpPutInterceptor,
|
|
httpDeleteInterceptor,
|
|
} from "./http-config/http-interceptor-service";
|
|
import { MasterModule } from "./menu-modules";
|
|
|
|
// Types
|
|
export interface UserLevelModuleAccess {
|
|
id: number;
|
|
userLevelId: number;
|
|
moduleId: number;
|
|
canAccess: boolean;
|
|
isActive: boolean;
|
|
module?: MasterModule;
|
|
createdAt?: string;
|
|
updatedAt?: string;
|
|
}
|
|
|
|
export interface UserLevelModuleAccessCreateRequest {
|
|
userLevelId: number;
|
|
moduleId: number;
|
|
canAccess?: boolean;
|
|
isActive?: boolean;
|
|
}
|
|
|
|
export interface UserLevelModuleAccessBatchCreateRequest {
|
|
userLevelId: number;
|
|
moduleIds: number[];
|
|
canAccess?: boolean;
|
|
}
|
|
|
|
export interface UserLevelModuleAccessUpdateRequest {
|
|
userLevelId?: number;
|
|
moduleId?: number;
|
|
canAccess?: boolean;
|
|
isActive?: boolean;
|
|
}
|
|
|
|
export interface CheckAccessRequest {
|
|
userLevelId: number;
|
|
moduleId: number;
|
|
}
|
|
|
|
export interface CheckAccessResponse {
|
|
hasAccess: boolean;
|
|
}
|
|
|
|
// API Functions
|
|
export async function getUserLevelModuleAccesses(params?: {
|
|
userLevelId?: number;
|
|
moduleId?: number;
|
|
canAccess?: boolean;
|
|
page?: number;
|
|
limit?: number;
|
|
}) {
|
|
const queryParams = new URLSearchParams();
|
|
if (params?.userLevelId) queryParams.append("user_level_id", params.userLevelId.toString());
|
|
if (params?.moduleId) queryParams.append("module_id", params.moduleId.toString());
|
|
if (params?.canAccess !== undefined) queryParams.append("can_access", params.canAccess.toString());
|
|
if (params?.page) queryParams.append("page", params.page.toString());
|
|
if (params?.limit) queryParams.append("limit", params.limit.toString());
|
|
|
|
const url = `user-level-module-accesses${queryParams.toString() ? `?${queryParams.toString()}` : ""}`;
|
|
return httpGetInterceptor(url);
|
|
}
|
|
|
|
export async function getUserLevelModuleAccessById(id: number) {
|
|
const url = `user-level-module-accesses/${id}`;
|
|
return httpGetInterceptor(url);
|
|
}
|
|
|
|
export async function getUserLevelModuleAccessesByUserLevelId(userLevelId: number) {
|
|
const url = `user-level-module-accesses/user-level/${userLevelId}`;
|
|
return httpGetInterceptor(url);
|
|
}
|
|
|
|
export async function getUserLevelModuleAccessesByModuleId(moduleId: number) {
|
|
const url = `user-level-module-accesses/module/${moduleId}`;
|
|
return httpGetInterceptor(url);
|
|
}
|
|
|
|
export async function createUserLevelModuleAccess(data: UserLevelModuleAccessCreateRequest) {
|
|
const url = "user-level-module-accesses";
|
|
return httpPostInterceptor(url, data);
|
|
}
|
|
|
|
export async function createUserLevelModuleAccessesBatch(data: UserLevelModuleAccessBatchCreateRequest) {
|
|
const url = "user-level-module-accesses/batch";
|
|
return httpPostInterceptor(url, data);
|
|
}
|
|
|
|
export async function updateUserLevelModuleAccess(id: number, data: UserLevelModuleAccessUpdateRequest) {
|
|
const url = `user-level-module-accesses/${id}`;
|
|
return httpPutInterceptor(url, data);
|
|
}
|
|
|
|
export async function deleteUserLevelModuleAccess(id: number) {
|
|
const url = `user-level-module-accesses/${id}`;
|
|
return httpDeleteInterceptor(url);
|
|
}
|
|
|
|
export async function checkAccess(data: CheckAccessRequest) {
|
|
const url = "user-level-module-accesses/check-access";
|
|
return httpPostInterceptor(url, data);
|
|
}
|
|
|