diff --git a/mon-aide-cyber-api/src/api/recherche-entreprise/routesAPIRechercheEntreprise.ts b/mon-aide-cyber-api/src/api/recherche-entreprise/routesAPIRechercheEntreprise.ts index c7b8f4622..68b94c710 100644 --- a/mon-aide-cyber-api/src/api/recherche-entreprise/routesAPIRechercheEntreprise.ts +++ b/mon-aide-cyber-api/src/api/recherche-entreprise/routesAPIRechercheEntreprise.ts @@ -54,9 +54,19 @@ export const routesAPIRechercheEntreprise = ( suite: NextFunction ) => { const nomEntreprise: string = requete.query.nom as string; + const parametresRecherche = Object.entries(requete.query).reduce( + (precedent, courant) => { + const parametres = courant as [string, string]; + if (parametres[0] !== 'nom') { + precedent += `&${parametres[0]}=${parametres[1]}`; + } + return precedent; + }, + '' + ); return adaptateurDeRequeteHTTP .execute({ - url: `${adaptateurEnvironnement.apiRechercheEntreprise().url()}/search?q=${encodeURIComponent(nomEntreprise)}&per_page=25&limite_matching_etablissements=1`, + url: `${adaptateurEnvironnement.apiRechercheEntreprise().url()}/search?q=${encodeURIComponent(nomEntreprise)}${parametresRecherche}&per_page=25&limite_matching_etablissements=1`, headers: { Accept: 'application/json' }, methode: 'GET', }) diff --git a/mon-aide-cyber-api/test/api/recherche-entreprise/routesAPIRechercheEntreprise.spec.ts b/mon-aide-cyber-api/test/api/recherche-entreprise/routesAPIRechercheEntreprise.spec.ts index f14087d86..39ae0e36b 100644 --- a/mon-aide-cyber-api/test/api/recherche-entreprise/routesAPIRechercheEntreprise.spec.ts +++ b/mon-aide-cyber-api/test/api/recherche-entreprise/routesAPIRechercheEntreprise.spec.ts @@ -68,6 +68,23 @@ describe('Le serveur MAC, sur les routes de recherche entreprise', () => { ); }); + it('Prends en compte les paramètres de requêtes optionnels', async () => { + testeurMAC.adaptateurDeRequeteHTTP.reponse({ + results: [{ siege: { siret: '1234567890' }, nom_complet: 'Beta-Gouv' }], + }); + + await executeRequete( + donneesServeur.app, + 'GET', + '/api/recherche-entreprise?nom=beta&est_association=true', + donneesServeur.portEcoute + ); + + expect(testeurMAC.adaptateurDeRequeteHTTP.requeteAttendue).toStrictEqual( + '/search?q=beta&est_association=true&per_page=25&limite_matching_etablissements=1' + ); + }); + it('Retourne une erreur si la requête a échoué', async () => { testeurMAC.adaptateurDeRequeteHTTP.reponse( {