37 lines
974 B
TypeScript
37 lines
974 B
TypeScript
import type { Employee } from './dto/employee'
|
|
import { extractItems } from '~/utils/api'
|
|
|
|
export const listEmployees = async () => {
|
|
const api = useApi()
|
|
const data = await api.get<Employee[] | { 'hydra:member'?: Employee[] }>(
|
|
'/employees',
|
|
{},
|
|
{ toast: false }
|
|
)
|
|
return extractItems<Employee>(data)
|
|
}
|
|
|
|
export const createEmployee = async (payload: Pick<Employee, 'firstName' | 'lastName'>) => {
|
|
const api = useApi()
|
|
return api.post<Employee>('/employees', payload, {
|
|
toastSuccessMessage: 'Employé créé.'
|
|
})
|
|
}
|
|
|
|
export const updateEmployee = async (
|
|
id: number,
|
|
payload: Pick<Employee, 'firstName' | 'lastName'>
|
|
) => {
|
|
const api = useApi()
|
|
return api.patch<Employee>(`/employees/${id}`, payload, {
|
|
toastSuccessMessage: 'Employé mis à jour.'
|
|
})
|
|
}
|
|
|
|
export const deleteEmployee = async (id: number) => {
|
|
const api = useApi()
|
|
return api.delete(`/employees/${id}`, {}, {
|
|
toastSuccessMessage: 'Employé supprimé.'
|
|
})
|
|
}
|