43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { useApi } from '~/composables/useApi'
|
|
import type { BovineData, BovinePayload } from '~/services/dto/bovine-data'
|
|
|
|
export async function createBovine(payload: BovinePayload) {
|
|
const api = useApi()
|
|
return api.post<BovineData>('bovines', payload, {
|
|
headers: { 'Content-Type': 'application/ld+json' },
|
|
toastErrorKey: 'errors.bovine.create',
|
|
toastSuccessKey: 'success.bovine.create'
|
|
})
|
|
}
|
|
|
|
export async function createBovines(nationalNumbers: string[]): Promise<{ created: BovineData[]; errors: string[] }> {
|
|
const created: BovineData[] = []
|
|
const errors: string[] = []
|
|
|
|
for (const nationalNumber of nationalNumbers) {
|
|
try {
|
|
const bovine = await createBovine({ nationalNumber })
|
|
if (bovine) {
|
|
created.push(bovine)
|
|
}
|
|
} catch {
|
|
errors.push(nationalNumber)
|
|
}
|
|
}
|
|
|
|
return { created, errors }
|
|
}
|
|
|
|
export async function getBovine(id: number) {
|
|
const api = useApi()
|
|
return api.get<BovineData>(`bovines/${id}`)
|
|
}
|
|
|
|
export async function updateBovine(id: number, payload: BovinePayload) {
|
|
const api = useApi()
|
|
return api.patch<BovineData>(`bovines/${id}`, payload, {
|
|
toastErrorKey: 'errors.bovine.update',
|
|
toastSuccessKey: 'success.bovine.update'
|
|
})
|
|
}
|