kontenhumas-fe/service/user-level-menu-action-acce...

108 lines
3.5 KiB
TypeScript

import {
httpPostInterceptor,
httpGetInterceptor,
httpPutInterceptor,
httpDeleteInterceptor,
} from "./http-config/http-interceptor-service";
// Types
export interface UserLevelMenuActionAccess {
id: number;
userLevelId: number;
menuId: number;
actionCode: string;
canAccess: boolean;
isActive: boolean;
createdAt?: string;
updatedAt?: string;
}
export interface UserLevelMenuActionAccessCreateRequest {
userLevelId: number;
menuId: number;
actionCode: string;
canAccess?: boolean;
isActive?: boolean;
}
export interface UserLevelMenuActionAccessBatchCreateRequest {
userLevelId: number;
menuId: number;
actionCodes: string[];
}
export interface UserLevelMenuActionAccessUpdateRequest {
userLevelId?: number;
menuId?: number;
actionCode?: string;
canAccess?: boolean;
isActive?: boolean;
}
// API Functions
export async function getUserLevelMenuActionAccesses(params?: {
userLevelId?: number;
menuId?: number;
actionCode?: string;
canAccess?: boolean;
page?: number;
limit?: number;
}) {
const queryParams = new URLSearchParams();
if (params?.userLevelId) queryParams.append("user_level_id", params.userLevelId.toString());
if (params?.menuId) queryParams.append("menu_id", params.menuId.toString());
if (params?.actionCode) queryParams.append("action_code", params.actionCode);
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-menu-action-accesses${queryParams.toString() ? `?${queryParams.toString()}` : ""}`;
return httpGetInterceptor(url);
}
export async function getUserLevelMenuActionAccessById(id: number) {
const url = `user-level-menu-action-accesses/${id}`;
return httpGetInterceptor(url);
}
export async function getUserLevelMenuActionAccessesByUserLevelId(userLevelId: number) {
const url = `user-level-menu-action-accesses/user-level/${userLevelId}`;
return httpGetInterceptor(url);
}
export async function getUserLevelMenuActionAccessesByUserLevelIdAndMenuId(userLevelId: number, menuId: number) {
const url = `user-level-menu-action-accesses/user-level/${userLevelId}/menu/${menuId}`;
return httpGetInterceptor(url);
}
export async function getUserLevelMenuActionAccessesByMenuId(menuId: number) {
const url = `user-level-menu-action-accesses/menu/${menuId}`;
return httpGetInterceptor(url);
}
export async function checkUserLevelMenuActionAccess(userLevelId: number, menuId: number, actionCode: string) {
const url = `user-level-menu-action-accesses/check/${userLevelId}/${menuId}/${actionCode}`;
return httpGetInterceptor(url);
}
export async function createUserLevelMenuActionAccess(data: UserLevelMenuActionAccessCreateRequest) {
const url = "user-level-menu-action-accesses";
return httpPostInterceptor(url, data);
}
export async function createUserLevelMenuActionAccessesBatch(data: UserLevelMenuActionAccessBatchCreateRequest) {
const url = "user-level-menu-action-accesses/batch";
return httpPostInterceptor(url, data);
}
export async function updateUserLevelMenuActionAccess(id: number, data: UserLevelMenuActionAccessUpdateRequest) {
const url = `user-level-menu-action-accesses/${id}`;
return httpPutInterceptor(url, data);
}
export async function deleteUserLevelMenuActionAccess(id: number) {
const url = `user-level-menu-action-accesses/${id}`;
return httpDeleteInterceptor(url);
}