From ae2c794ba68fc3fdc391716ecfdc82c9c7195be9 Mon Sep 17 00:00:00 2001 From: Bertrand Bougon Date: Mon, 30 Dec 2024 16:02:50 +0100 Subject: [PATCH] [ADMINISTRATION][RECHERCHE DEMANDE DEVENIR AIDANT] Ajoute une option pour faire une recherche sur l'email --- .../gestion-demandes/recherche/commande.ts | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/mon-aide-cyber-api/src/administration/gestion-demandes/recherche/commande.ts b/mon-aide-cyber-api/src/administration/gestion-demandes/recherche/commande.ts index fd310384d..fb3d0d073 100644 --- a/mon-aide-cyber-api/src/administration/gestion-demandes/recherche/commande.ts +++ b/mon-aide-cyber-api/src/administration/gestion-demandes/recherche/commande.ts @@ -2,27 +2,39 @@ import { program } from 'commander'; import { EntrepotDemandeDevenirAidantPostgres } from '../../../infrastructure/entrepots/postgres/EntrepotDemandeDevenirAidantPostgres'; import { compareAsc } from 'date-fns'; import { adaptateurServiceChiffrement } from '../../../infrastructure/adaptateurs/adaptateurServiceChiffrement'; +import { DemandeDevenirAidant } from '../../../gestion-demandes/devenir-aidant/DemandeDevenirAidant'; const command = program .description('Obtenir le détail de la demande pour un Aidant donné') - .argument('', 'Le nom ou prénom de l’Aidant'); + .option('-n, --nom ', 'Le nom ou prénom de l’Aidant') + .option('-m, --mail ', "Tout ou partie de l'email recherché"); -command.action(async (...args: any[]) => { - const nomPrenom: string = args[0].toLowerCase().trim(); +type Predicat = (d: DemandeDevenirAidant) => boolean; + +command.action(async (options) => { + console.log('Options', options); const entrepot = new EntrepotDemandeDevenirAidantPostgres( adaptateurServiceChiffrement() ); + let predicat: Predicat; + if (options.nom) { + const nomPrenom: string = options.nom.toLowerCase().trim(); + predicat = (d: DemandeDevenirAidant) => + d.nom.toLowerCase().trim().includes(nomPrenom) || + d.prenom.toLowerCase().trim().includes(nomPrenom); + } + if (options.mail) { + const mail: string = options.mail.toLowerCase().trim(); + predicat = (d: DemandeDevenirAidant) => + d.mail.toLowerCase().trim().includes(mail); + } const demandes = await entrepot .tous() .then((demandes) => demandes - .filter( - (d) => - d.nom.toLowerCase().trim().includes(nomPrenom) || - d.prenom.toLowerCase().trim().includes(nomPrenom) - ) + .filter((d) => predicat(d)) .sort((demandeA, demandeB) => compareAsc(demandeA.date, demandeB.date)) );