feat : first commit
This commit is contained in:
58
frontend/services/absences.ts
Normal file
58
frontend/services/absences.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import type { Absence } from './dto/absence'
|
||||
import { extractItems } from '~/utils/api'
|
||||
|
||||
export const listAbsences = async () => {
|
||||
const api = useApi()
|
||||
const data = await api.get<Absence[] | { 'hydra:member'?: Absence[] }>(
|
||||
'/absences',
|
||||
{},
|
||||
{ toast: false }
|
||||
)
|
||||
return extractItems<Absence>(data)
|
||||
}
|
||||
|
||||
export const createAbsence = async (payload: {
|
||||
employeeId: number
|
||||
typeId: number
|
||||
startDate: string
|
||||
endDate: string
|
||||
comment?: string
|
||||
}) => {
|
||||
const api = useApi()
|
||||
return api.post<Absence>('/absences', {
|
||||
employee: `/api/employees/${payload.employeeId}`,
|
||||
type: `/api/absence_types/${payload.typeId}`,
|
||||
startDate: payload.startDate,
|
||||
endDate: payload.endDate,
|
||||
comment: payload.comment
|
||||
}, {
|
||||
toastSuccessMessage: 'Absence créée.'
|
||||
})
|
||||
}
|
||||
|
||||
export const updateAbsence = async (payload: {
|
||||
id: number
|
||||
employeeId: number
|
||||
typeId: number
|
||||
startDate: string
|
||||
endDate: string
|
||||
comment?: string
|
||||
}) => {
|
||||
const api = useApi()
|
||||
return api.patch<Absence>(`/absences/${payload.id}`, {
|
||||
employee: `/api/employees/${payload.employeeId}`,
|
||||
type: `/api/absence_types/${payload.typeId}`,
|
||||
startDate: payload.startDate,
|
||||
endDate: payload.endDate,
|
||||
comment: payload.comment
|
||||
}, {
|
||||
toastSuccessMessage: 'Absence mise à jour.'
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteAbsence = async (id: number) => {
|
||||
const api = useApi()
|
||||
return api.delete(`/absences/${id}`, {}, {
|
||||
toastSuccessMessage: 'Absence supprimée.'
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user