43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { useApi } from "~/composables/useApi"
|
|
import type { SupplierData, SupplierPayload } from "~/services/dto/supplier-data"
|
|
|
|
export type SupplierListResponse =
|
|
| SupplierData[]
|
|
| { "hydra:member"?: SupplierData[] }
|
|
|
|
export async function getSupplierList(): Promise<SupplierData[]> {
|
|
const api = useApi()
|
|
const response = await api.get<SupplierListResponse>("suppliers", {}, {
|
|
toastErrorKey: "errors.supplier.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 getSupplier(id: number): Promise<SupplierData> {
|
|
const api = useApi()
|
|
return api.get<SupplierData>(`supplier/${id}`, {}, {
|
|
toastErrorKey: "errors.supplier.fetch"
|
|
})
|
|
}
|
|
|
|
export async function updateSupplier(id: number, payload: SupplierPayload): Promise<SupplierData> {
|
|
const api = useApi()
|
|
return api.patch<SupplierData>(`supplier/${id}`, payload, {
|
|
toastErrorKey: "errors.supplier.update",
|
|
toastSuccessKey: "success.supplier.update"
|
|
})
|
|
}
|
|
|
|
export async function createSupplier(payload: SupplierPayload): Promise<SupplierData> {
|
|
const api = useApi()
|
|
return api.post<SupplierData>("supplier", payload, {
|
|
toastErrorKey: "errors.supplier.create",
|
|
toastSuccessKey: "success.supplier.create"
|
|
})
|
|
}
|