import { unwrapApiResponse, unwrapNullableApiResponse } from '@/utils/api-response' import { request } from '@/utils/request' import type { ApiResponse } from '@/types/common' import type { CreatePermissionResourceRequest, PermissionResourceNodeDto, UpdatePermissionResourceRequest, } from './types' export async function getPermissionResources(): Promise { const response = await request.get>('/v1/menu-resources') return unwrapApiResponse(response) } export async function createPermissionResource( payload: CreatePermissionResourceRequest, ): Promise { const response = await request.post>('/v1/menu-resources', payload) return unwrapApiResponse(response).id } export async function updatePermissionResource( id: string, payload: UpdatePermissionResourceRequest, ): Promise { const response = await request.put>( `/v1/menu-resources/${encodeURIComponent(id)}`, payload, ) unwrapNullableApiResponse(response) } export async function setPermissionResourceStatus(id: string, enabled: boolean): Promise { const response = await request.put>( `/v1/menu-resources/${encodeURIComponent(id)}/status`, { enabled }, ) unwrapNullableApiResponse(response) } export async function sortPermissionResource(id: string, sortNo: number): Promise { const response = await request.put>( `/v1/menu-resources/${encodeURIComponent(id)}/sort`, { sortNo }, ) unwrapNullableApiResponse(response) } export async function deletePermissionResource(id: string, cascade = false): Promise { const response = await request.delete>( `/v1/menu-resources/${encodeURIComponent(id)}`, { params: { cascade } }, ) unwrapNullableApiResponse(response) }