fix : correction des retours de la V0
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { AddressData } from '~/services/dto/address-data'
|
||||
|
||||
export interface AddressPayload {
|
||||
label: string
|
||||
street: string
|
||||
street2?: string | null
|
||||
postalCode: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export interface AddressData {
|
||||
id: number
|
||||
label: string
|
||||
label?: string | null
|
||||
street: string
|
||||
street2?: string | null
|
||||
postalCode: string
|
||||
@@ -11,7 +11,7 @@ export interface AddressData {
|
||||
|
||||
export interface AddressFormData {
|
||||
id?: number | null
|
||||
label: string
|
||||
label?: string | null
|
||||
street: string
|
||||
street2?: string | null
|
||||
postalCode: string
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { AddressFormData } from "~/services/dto/address-data"
|
||||
import type { UserData } from "~/services/dto/user-data"
|
||||
|
||||
export type CustomerAddresses = AddressFormData[] | string[]
|
||||
|
||||
@@ -7,6 +8,7 @@ export interface CustomerData {
|
||||
name: string
|
||||
phone?: string | null
|
||||
email?: string | null
|
||||
createdBy?: UserData | null
|
||||
addresses: CustomerAddresses
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { AddressFormData } from "~/services/dto/address-data"
|
||||
import type { UserData } from "~/services/dto/user-data"
|
||||
|
||||
export type SupplierAddresses = AddressFormData[] | string[]
|
||||
|
||||
@@ -7,6 +8,7 @@ export interface SupplierData {
|
||||
name: string
|
||||
email?: string | null
|
||||
phone?: string | null
|
||||
createdBy?: UserData | null
|
||||
addresses: SupplierAddresses
|
||||
}
|
||||
|
||||
|
||||
@@ -1,42 +1,22 @@
|
||||
import {useApi} from '~/composables/useApi'
|
||||
import type {ReceptionData, ReceptionPayload} from '~/services/dto/reception-data'
|
||||
import type {WeightData} from '~/services/dto/weight-data'
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import { createWorkflowService } from '~/services/workflow-service'
|
||||
import type { ReceptionData, ReceptionPayload } from '~/services/dto/reception-data'
|
||||
import type { WeightData } from '~/services/dto/weight-data'
|
||||
|
||||
export async function getReceptionList(isValid: boolean|null = null) {
|
||||
const service = createWorkflowService<ReceptionData, ReceptionPayload>('receptions', 'reception')
|
||||
|
||||
export const getReceptionList = service.getList
|
||||
export const getReception = service.get
|
||||
export const createReception = service.create
|
||||
export const updateReception = service.update
|
||||
export const getWeight = service.getWeight as () => Promise<WeightData>
|
||||
|
||||
export async function deleteReception(id: number) {
|
||||
const api = useApi()
|
||||
const query = isValid !== null ? { isValid: isValid} : {}
|
||||
return api.get<ReceptionData[]>('receptions', query, {
|
||||
toastErrorKey: 'errors.reception.list'
|
||||
return api.delete(`receptions/${id}`, {}, {
|
||||
toastSuccessKey: 'success.reception.delete',
|
||||
toastErrorKey: 'errors.reception.delete'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export async function getReception(id: number) {
|
||||
const api = useApi()
|
||||
return api.get<ReceptionData>(`receptions/${id}`, {}, {
|
||||
toastErrorKey: 'errors.reception.fetch'
|
||||
})
|
||||
}
|
||||
|
||||
export async function createReception(payload: ReceptionPayload = {}) {
|
||||
const api = useApi()
|
||||
return api.post<ReceptionData>('receptions', payload, {
|
||||
toastSuccessKey: 'success.reception.create',
|
||||
toastErrorKey: 'errors.reception.create'
|
||||
})
|
||||
}
|
||||
|
||||
export async function updateReception(id: number, payload: ReceptionPayload) {
|
||||
const api = useApi()
|
||||
return api.patch<ReceptionData>(`receptions/${id}`, payload, {
|
||||
toastErrorKey: 'errors.reception.update',
|
||||
toastSuccessKey: 'success.reception.update'
|
||||
})
|
||||
}
|
||||
|
||||
export async function getWeight(): Promise<WeightData> {
|
||||
const api = useApi()
|
||||
return api.get<WeightData>('receptions/weigh', {}, {
|
||||
toastErrorKey: 'errors.reception.weigh'
|
||||
})
|
||||
}
|
||||
export { service as receptionService }
|
||||
|
||||
@@ -1,42 +1,22 @@
|
||||
import {useApi} from '~/composables/useApi'
|
||||
import type {ShipmentData, ShipmentPayload} from '~/services/dto/shipment-data'
|
||||
import type {WeightData} from '~/services/dto/weight-data'
|
||||
import { createWorkflowService } from '~/services/workflow-service'
|
||||
import type { ShipmentData, ShipmentPayload } from '~/services/dto/shipment-data'
|
||||
import type { WeightData } from '~/services/dto/weight-data'
|
||||
|
||||
export async function getShipmentList(isValid: boolean|null = null) {
|
||||
const service = createWorkflowService<ShipmentData, ShipmentPayload>('shipments', 'shipment')
|
||||
|
||||
export const getShipmentList = service.getList
|
||||
export const getShipment = service.get
|
||||
export const createShipment = service.create
|
||||
export const updateShipment = service.update
|
||||
export const getWeightShipment = service.getWeight as () => Promise<WeightData>
|
||||
|
||||
export async function deleteShipment(id: number) {
|
||||
const { useApi } = await import('~/composables/useApi')
|
||||
const api = useApi()
|
||||
const query = isValid !== null ? { isValid: isValid} : {}
|
||||
return api.get<ShipmentData[]>('shipments', query, {
|
||||
toastErrorKey: 'errors.shipment.list'
|
||||
return api.delete(`shipments/${id}`, {}, {
|
||||
toastSuccessKey: 'success.shipment.delete',
|
||||
toastErrorKey: 'errors.shipment.delete'
|
||||
})
|
||||
}
|
||||
|
||||
export async function getShipment(id: number) {
|
||||
const api = useApi()
|
||||
return api.get<ShipmentData>(`shipments/${id}`, {}, {
|
||||
toastErrorKey: 'errors.shipment.fetch'
|
||||
})
|
||||
}
|
||||
|
||||
export async function createShipment(payload: ShipmentPayload = {}) {
|
||||
console.log('test')
|
||||
const api = useApi()
|
||||
return api.post<ShipmentData>('shipments', payload, {
|
||||
toastSuccessKey: 'success.shipment.create',
|
||||
toastErrorKey: 'errors.shipment.create'
|
||||
})
|
||||
}
|
||||
|
||||
export async function updateShipment(id: number, payload: ShipmentPayload) {
|
||||
const api = useApi()
|
||||
return api.patch<ShipmentData>(`shipments/${id}`, payload, {
|
||||
toastErrorKey: 'errors.shipment.update',
|
||||
toastSuccessKey: 'success.shipment.update'
|
||||
})
|
||||
}
|
||||
|
||||
export async function getWeightShipment(): Promise<WeightData> {
|
||||
const api = useApi()
|
||||
return api.get<WeightData>('shipments/weigh', {}, {
|
||||
toastErrorKey: 'errors.shipment.weigh'
|
||||
})
|
||||
}
|
||||
export { service as shipmentService }
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type {ReceptionData, ReceptionPayload, WeightEntryData} from '~/services/dto/reception-data'
|
||||
import type {Ref} from "vue";
|
||||
import type {ShipmentData, ShipmentPayload} from "~/services/dto/shipment-data";
|
||||
import type {WeighingMode} from "~/composables/useWeighing";
|
||||
import type { WeightEntryData } from '~/services/dto/reception-data'
|
||||
|
||||
export type WeightPayload = {
|
||||
reception?: string
|
||||
@@ -13,29 +10,15 @@ export type WeightPayload = {
|
||||
weighedAt: string | null
|
||||
}
|
||||
|
||||
export async function createWeight(payload: WeightPayload) {
|
||||
export async function createWeight(payload: WeightPayload | Record<string, any>) {
|
||||
const api = useApi()
|
||||
return api.post<WeightEntryData>('weights', payload)
|
||||
}
|
||||
|
||||
export async function updateWeight(id: number, payload: Partial<WeightPayload>) {
|
||||
const api = useApi()
|
||||
return api.patch<WeightEntryData>(`weights/${id}`, payload,{
|
||||
toastErrorKey: 'errors.weight.update',
|
||||
toastSuccessKey: 'success.weight.update'
|
||||
return api.patch<WeightEntryData>(`weights/${id}`, payload, {
|
||||
toastErrorKey: 'errors.weight.update',
|
||||
toastSuccessKey: 'success.weight.update'
|
||||
})
|
||||
}
|
||||
|
||||
export type UseWeighingShipmentOptions = {
|
||||
modeShipment: WeighingMode
|
||||
shipment: Ref<ShipmentData | null>
|
||||
updateShipment: (id: number, payload: ShipmentPayload) => Promise<ShipmentData | null>
|
||||
loadShipment?: (id: number) => Promise<ShipmentData | null>
|
||||
}
|
||||
|
||||
export type UseWeighingOptions = {
|
||||
mode: WeighingMode
|
||||
reception: Ref<ReceptionData | null>
|
||||
updateReception: (id: number, payload: ReceptionPayload) => Promise<ReceptionData | null>
|
||||
loadReception?: (id: number) => Promise<ReceptionData | null>
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { WeightData } from '~/services/dto/weight-data'
|
||||
|
||||
export interface WorkflowService<TEntity, TPayload> {
|
||||
getList: (isValid?: boolean | null) => Promise<TEntity[]>
|
||||
get: (id: number) => Promise<TEntity>
|
||||
create: (payload: TPayload) => Promise<TEntity>
|
||||
update: (id: number, payload: TPayload) => Promise<TEntity>
|
||||
getWeight: () => Promise<WeightData>
|
||||
}
|
||||
|
||||
export function createWorkflowService<TEntity, TPayload>(
|
||||
apiResource: string,
|
||||
toastPrefix: string
|
||||
): WorkflowService<TEntity, TPayload> {
|
||||
const getList = async (isValid: boolean | null = null): Promise<TEntity[]> => {
|
||||
const api = useApi()
|
||||
const query = isValid !== null ? { isValid } : {}
|
||||
return api.get<TEntity[]>(apiResource, query, {
|
||||
toastErrorKey: `errors.${toastPrefix}.list`
|
||||
})
|
||||
}
|
||||
|
||||
const get = async (id: number): Promise<TEntity> => {
|
||||
const api = useApi()
|
||||
return api.get<TEntity>(`${apiResource}/${id}`, {}, {
|
||||
toastErrorKey: `errors.${toastPrefix}.fetch`
|
||||
})
|
||||
}
|
||||
|
||||
const create = async (payload: TPayload): Promise<TEntity> => {
|
||||
const api = useApi()
|
||||
return api.post<TEntity>(apiResource, payload, {
|
||||
toastSuccessKey: `success.${toastPrefix}.create`,
|
||||
toastErrorKey: `errors.${toastPrefix}.create`
|
||||
})
|
||||
}
|
||||
|
||||
const update = async (id: number, payload: TPayload): Promise<TEntity> => {
|
||||
const api = useApi()
|
||||
return api.patch<TEntity>(`${apiResource}/${id}`, payload, {
|
||||
toastErrorKey: `errors.${toastPrefix}.update`,
|
||||
toastSuccessKey: `success.${toastPrefix}.update`
|
||||
})
|
||||
}
|
||||
|
||||
const getWeight = async (): Promise<WeightData> => {
|
||||
const api = useApi()
|
||||
return api.get<WeightData>(`${apiResource}/weigh`, {}, {
|
||||
toastErrorKey: `errors.${toastPrefix}.weigh`
|
||||
})
|
||||
}
|
||||
|
||||
return { getList, get, create, update, getWeight }
|
||||
}
|
||||
Reference in New Issue
Block a user