import type { Absence } from './dto/absence' import { extractItems } from '~/utils/api' export const listAbsences = async () => { const api = useApi() const data = await api.get( '/absences', {}, { toast: false } ) return extractItems(data) } export const createAbsence = async (payload: { employeeId: number typeId: number startDate: string endDate: string comment?: string }) => { const api = useApi() return api.post('/absences', { employee: `/api/employees/${payload.employeeId}`, type: `/api/absence_types/${payload.typeId}`, startDate: payload.startDate, endDate: payload.endDate, comment: payload.comment }, { toastSuccessKey: 'success.absence.create', toastErrorKey: 'errors.absence.create' }) } export const updateAbsence = async (payload: { id: number employeeId: number typeId: number startDate: string endDate: string comment?: string }) => { const api = useApi() return api.patch(`/absences/${payload.id}`, { employee: `/api/employees/${payload.employeeId}`, type: `/api/absence_types/${payload.typeId}`, startDate: payload.startDate, endDate: payload.endDate, comment: payload.comment }, { toastSuccessKey: 'success.absence.update', toastErrorKey: 'errors.absence.update' }) } export const deleteAbsence = async (id: number) => { const api = useApi() return api.delete(`/absences/${id}`, {}, { toastSuccessKey: 'success.absence.delete', toastErrorKey: 'errors.absence.delete' }) }