46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import type {
|
|
AssignTeamRequest,
|
|
InterventionSummaryResponse,
|
|
OkResponse,
|
|
PagedReportListResponse,
|
|
TeamListResponse,
|
|
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 getTeams = () =>
|
|
useApiFetch<TeamListResponse>('/api/v1/operator/teams', { method: 'GET' })
|
|
|
|
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,
|
|
getTeams,
|
|
takeReport,
|
|
updateReportStatus,
|
|
assignTeam,
|
|
getInterventionSummary,
|
|
}
|
|
}
|