feat: implement API composables for authentication and data fetching
- Add useApiFetch composable for HTTP requests with auth token - Implement useAuth composable for authentication endpoints - Add useAdmin composable for admin operations - Add useOperator composable for operator management - Add useMembers composable for member data - Add usePublic composable for public reports - Add useReports composable for report operations Co-authored-by: Copilot <[email protected]>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import type {
|
||||
AssignTeamRequest,
|
||||
InterventionSummaryResponse,
|
||||
OkResponse,
|
||||
PagedReportListResponse,
|
||||
UpdateStatusRequest
|
||||
} from "~/types/api";
|
||||
|
||||
export const useOperator = () => {
|
||||
const getOpenReports = (query?: { page?: number; per_page?: number }) =>
|
||||
useApiFetch<PagedReportListResponse>('/api/v1/operator/reports/open', { method: 'GET', query })
|
||||
|
||||
const getAssignedReports = (query?: { page?: number; per_page?: number }) =>
|
||||
useApiFetch<PagedReportListResponse>('/api/v1/operator/reports/assigned', { method: 'GET', query })
|
||||
|
||||
const getOtherOperatorReports = (query?: { page?: number; per_page?: number }) =>
|
||||
useApiFetch<PagedReportListResponse>('/api/v1/operator/reports/others', { method: 'GET', query })
|
||||
|
||||
const takeReport = (id: number) =>
|
||||
useApiFetch<OkResponse>(`/api/v1/reports/${id}/take`, { method: 'POST' })
|
||||
|
||||
const updateReportStatus = (id: number, body: UpdateStatusRequest) =>
|
||||
useApiFetch<OkResponse>(`/api/v1/reports/${id}/status`, { method: 'PATCH', body })
|
||||
|
||||
const assignTeam = (id: number, body: AssignTeamRequest) =>
|
||||
useApiFetch<OkResponse>(`/api/v1/reports/${id}/assignments`, { method: 'POST', body })
|
||||
|
||||
const getInterventionSummary = (id: number) =>
|
||||
useApiFetch<InterventionSummaryResponse>(`/api/v1/reports/${id}/intervention-summary`, { method: 'GET' })
|
||||
|
||||
return {
|
||||
getOpenReports,
|
||||
getAssignedReports,
|
||||
getOtherOperatorReports,
|
||||
takeReport,
|
||||
updateReportStatus,
|
||||
assignTeam,
|
||||
getInterventionSummary,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user