Files
xh-medical-sign-web/clinical-web/src/api/management/permissions.ts
T
2026-09-24 08:31:21 +08:00

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)
}