57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
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<PermissionResourceNodeDto[]> {
|
|
const response = await request.get<ApiResponse<PermissionResourceNodeDto[]>>('/v1/menu-resources')
|
|
return unwrapApiResponse(response)
|
|
}
|
|
|
|
export async function createPermissionResource(
|
|
payload: CreatePermissionResourceRequest,
|
|
): Promise<string> {
|
|
const response = await request.post<ApiResponse<{ id: string }>>('/v1/menu-resources', payload)
|
|
return unwrapApiResponse(response).id
|
|
}
|
|
|
|
export async function updatePermissionResource(
|
|
id: string,
|
|
payload: UpdatePermissionResourceRequest,
|
|
): Promise<void> {
|
|
const response = await request.put<ApiResponse<null>>(
|
|
`/v1/menu-resources/${encodeURIComponent(id)}`,
|
|
payload,
|
|
)
|
|
unwrapNullableApiResponse(response)
|
|
}
|
|
|
|
export async function setPermissionResourceStatus(id: string, enabled: boolean): Promise<void> {
|
|
const response = await request.put<ApiResponse<null>>(
|
|
`/v1/menu-resources/${encodeURIComponent(id)}/status`,
|
|
{ enabled },
|
|
)
|
|
unwrapNullableApiResponse(response)
|
|
}
|
|
|
|
export async function sortPermissionResource(id: string, sortNo: number): Promise<void> {
|
|
const response = await request.put<ApiResponse<null>>(
|
|
`/v1/menu-resources/${encodeURIComponent(id)}/sort`,
|
|
{ sortNo },
|
|
)
|
|
unwrapNullableApiResponse(response)
|
|
}
|
|
|
|
export async function deletePermissionResource(id: string, cascade = false): Promise<void> {
|
|
const response = await request.delete<ApiResponse<null>>(
|
|
`/v1/menu-resources/${encodeURIComponent(id)}`,
|
|
{ params: { cascade } },
|
|
)
|
|
unwrapNullableApiResponse(response)
|
|
}
|