Skip to content

Commit

Permalink
[ADMINISTRATION][RECHERCHE DEMANDE DEVENIR AIDANT] Ajoute une option …
Browse files Browse the repository at this point in the history
…pour faire une recherche sur l'email
  • Loading branch information
bbougon committed Dec 30, 2024
1 parent 25b0a6b commit ae2c794
Showing 1 changed file with 20 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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('<nomPrenomAidant>', 'Le nom ou prénom de l’Aidant');
.option('-n, --nom <nom>', 'Le nom ou prénom de l’Aidant')
.option('-m, --mail <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))
);

Expand Down

0 comments on commit ae2c794

Please sign in to comment.