feat(loans): confirm declared material state changes
This commit is contained in:
@@ -10,9 +10,19 @@ export interface EmpruntResponse {
|
||||
dateRetourReelle: Date | null;
|
||||
statut: string;
|
||||
materiel: MaterielResponse;
|
||||
checklistDepart: ChecklistElementResponse[];
|
||||
}
|
||||
|
||||
export interface ChecklistElementResponse {
|
||||
accessoireId: number | null;
|
||||
nomElement: string;
|
||||
etat: string;
|
||||
quantiteConstatee: number;
|
||||
}
|
||||
|
||||
export function toEmpruntResponse(emprunt: EmpruntAvecMateriel): EmpruntResponse {
|
||||
const checklistDepart = emprunt.checklists.find((checklist) => checklist.type === 'DEPART');
|
||||
|
||||
return {
|
||||
id: emprunt.id,
|
||||
dateEmprunt: emprunt.dateEmprunt,
|
||||
@@ -20,6 +30,13 @@ export function toEmpruntResponse(emprunt: EmpruntAvecMateriel): EmpruntResponse
|
||||
dateRetourReelle: emprunt.dateRetourReelle,
|
||||
statut: emprunt.statut,
|
||||
materiel: toMaterielResponse(emprunt.materiel),
|
||||
checklistDepart:
|
||||
checklistDepart?.elements.map((element) => ({
|
||||
accessoireId: element.accessoireId,
|
||||
nomElement: element.nomElement,
|
||||
etat: element.etat,
|
||||
quantiteConstatee: element.quantiteConstatee,
|
||||
})) ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -123,6 +140,25 @@ export interface RestituerEmpruntRequest {
|
||||
elements: ChecklistElementRequest[];
|
||||
}
|
||||
|
||||
export interface SignalerTentativeRetourRequest {
|
||||
nomElement: string;
|
||||
etatInitial: string;
|
||||
etatDemande: string;
|
||||
}
|
||||
|
||||
export function parseSignalerTentativeRetourRequest(body: unknown): SignalerTentativeRetourRequest {
|
||||
const obj = asObject(body, 'Corps de requete invalide');
|
||||
if (typeof obj.nomElement !== 'string' || obj.nomElement.trim() === '') {
|
||||
throw new AppError(400, 'nomElement requis');
|
||||
}
|
||||
|
||||
return {
|
||||
nomElement: obj.nomElement.trim(),
|
||||
etatInitial: asEnum(obj.etatInitial, ETAT_CHECKLIST_ELEMENT, 'etatInitial'),
|
||||
etatDemande: asEnum(obj.etatDemande, ETAT_CHECKLIST_ELEMENT, 'etatDemande'),
|
||||
};
|
||||
}
|
||||
|
||||
export function parseRestituerEmpruntRequest(body: unknown): RestituerEmpruntRequest {
|
||||
const obj = asObject(body, 'Corps de requete invalide');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user