UNPKG

@userfrosting/sprinkle-admin

Version:
57 lines (56 loc) 2.01 kB
import { ApiErrorResponse } from '@userfrosting/sprinkle-core/interfaces'; import { RoleCreateRequest, RoleEditRequest, RoleResponse } from '../interfaces'; /** * Vue composable for Role CRUD operations. * * Endpoints: * - GET /api/roles/r/{slug} -> RoleResponse * - POST /api/roles -> RoleCreateResponse * - PUT /api/roles/r/{slug} -> RoleEditResponse * - DELETE /api/roles/r/{slug} -> RoleDeleteResponse * * Reactive state: * - apiLoading: boolean * - apiError: ApiErrorResponse | null * - formData: RoleCreateRequest * - r$: validation state from Regle for formData * * Methods: * - fetchRole(slug: string): Promise<RoleResponse> * - createRole(data: RoleCreateRequest): Promise<void> * - updateRole(slug: string, data: RoleEditRequest): Promise<void> * - deleteRole(slug: string): Promise<void> * - resetForm(): void */ export declare function useRoleApi(): { fetchRole: (slug: string) => Promise<RoleResponse>; createRole: (data: RoleCreateRequest) => Promise<void>; updateRole: (slug: string, data: RoleEditRequest) => Promise<void>; deleteRole: (slug: string) => Promise<void>; apiLoading: import('vue').Ref<boolean, boolean>; apiError: import('vue').Ref<{ title: string; description: string; status: number; } | null, ApiErrorResponse | { title: string; description: string; status: number; } | null>; formData: import('vue').Ref<{ name: string; slug: string; description: string; }, RoleCreateRequest | { name: string; slug: string; description: string; }>; r$: import('vue').Raw<import('@regle/core').RegleRoot<{ name: string; slug: string; description: string; }, Record<string, any>, Record<string, import('@regle/core').RegleValidationGroupEntry[]>, import('@regle/core').RegleShortcutDefinition<any>>>; resetForm: () => void; slugLocked: import('vue').Ref<boolean, boolean>; };