feat : admin fournisseurs creation et modif (WIP)

This commit is contained in:
2026-02-09 17:36:26 +01:00
parent d3dfde7060
commit 4e2fe556be
5 changed files with 248 additions and 14 deletions

View File

@@ -8,3 +8,11 @@ export interface AddressData {
countryCode: string
fullAddress?: string
}
export interface AddressFormData {
id?: number | null
street: string
street2?: string
postalCode: string
city: string
country: string
}

View File

@@ -1,9 +1,25 @@
import type { AddressData } from '~/services/dto/address-data'
import type { AddressFormData } from '~/services/dto/address-data'
export interface SupplierData {
id: number
name: string
email?: string | null
phone?: string | null
addresses?: AddressData[] | null
addresses: AddressFormData[]
}
export interface SupplierFormData {
name: string
email?: string
phone?: string
addresses: AddressFormData[]
}
export type SupplierPayload = {
name: string
email?: string | null
phone?: string | null
street?: string | null
city?: string | null
postalCode?: string | null
country?: string | null
}

View File

@@ -1,23 +1,42 @@
import { useApi } from '~/composables/useApi'
import type { SupplierData } from '~/services/dto/supplier-data'
import { useApi } from "~/composables/useApi"
import type { SupplierData, SupplierPayload } from "~/services/dto/supplier-data"
export type SupplierListResponse =
| SupplierData[]
| { 'hydra:member'?: SupplierData[] }
| { "hydra:member"?: SupplierData[] }
export async function getSupplierList(): Promise<SupplierData[]> {
const api = useApi()
const response = await api.get<SupplierListResponse>('suppliers', {}, {
toastErrorKey: 'errors.supplier.list'
const response = await api.get<SupplierListResponse>("suppliers", {}, {
toastErrorKey: "errors.supplier.list"
})
if (Array.isArray(response)) {
return response
if (Array.isArray(response)) return response
if (response && typeof response === "object" && Array.isArray(response["hydra:member"])) {
return response["hydra:member"]
}
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"
})
}