59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import { useApi } from '~/composables/useApi'
|
|
import type { BovinShipmentData } from '~/services/dto/bovin-shipment-data'
|
|
export type BovinShipmentListResponse =
|
|
| BovinShipmentData[]
|
|
| { 'hydra:member'?: BovinShipmentData[] }
|
|
|
|
export type ShipmentBovinePayload = {
|
|
nbBovinSend: number
|
|
shipment: string
|
|
shipmentType: string
|
|
}
|
|
|
|
export async function getBovinShipmentList(
|
|
shipmentIri: string
|
|
): Promise<BovinShipmentData[]> {
|
|
const api = useApi()
|
|
const response = await api.get<BovinShipmentListResponse>(
|
|
'bovin_shipments',
|
|
{ shipment: shipmentIri },
|
|
{
|
|
toastErrorKey: 'errors.shipmentBovine.list'
|
|
}
|
|
)
|
|
|
|
if (Array.isArray(response)) {
|
|
return response
|
|
}
|
|
if (response && typeof response === 'object' && Array.isArray(response['hydra:member'])) {
|
|
return response['hydra:member']
|
|
}
|
|
return []
|
|
}
|
|
|
|
export async function createShipmentBovine(
|
|
payload: ShipmentBovinePayload
|
|
): Promise<BovinShipmentData> {
|
|
const api = useApi()
|
|
return api.post<BovinShipmentData>('bovin_shipments', payload, {
|
|
toastErrorKey: 'errors.shipmentBovine.create'
|
|
})
|
|
}
|
|
|
|
export async function deleteShipmentBovine(id: number): Promise<void> {
|
|
const api = useApi()
|
|
await api.delete<void>(`bovin_shipments/${id}`, {}, {
|
|
toastErrorKey: 'errors.shipmentBovine.delete'
|
|
})
|
|
}
|
|
|
|
export async function updateShipmentBovine(
|
|
id: number,
|
|
payload: Partial<ShipmentBovinePayload>
|
|
): Promise<BovinShipmentData> {
|
|
const api = useApi()
|
|
return api.patch<BovinShipmentData>(`bovin_shipments/${id}`, payload, {
|
|
toastErrorKey: 'errors.shipmentBovine.update'
|
|
})
|
|
}
|