UNPKG

@gouvfr-anct/mednum

Version:

✨ Permet de transformer une source de données vers le schéma des lieux de mediation numerique

30 lines (29 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processFicheAccesLibre = void 0; const lieux_de_mediation_numerique_1 = require("@gouvfr-anct/lieux-de-mediation-numerique"); const fuzzball_1 = require("fuzzball"); const getAccessibiliteFromAccesLibre = (source, matching, accesLibreData, adresseProcessed) => { const erpMatchWithScores = accesLibreData .filter((erp) => erp.postal_code === adresseProcessed.code_postal) .filter((erp) => (0, fuzzball_1.ratio)(source[matching.nom.colonne]?.toString() ?? '', erp.name) >= 97 || (0, fuzzball_1.ratio)(adresseProcessed.voie, erp.numero.concat(' ', erp.voie)) >= 97); const accesLibreUrlByFuzzyMatch = erpMatchWithScores.length === 1 ? erpMatchWithScores[0]?.web_url : undefined; const currentPivot = matching.pivot?.colonne != null && source[matching.pivot.colonne]?.toString() !== '' ? source[matching.pivot.colonne]?.toString() : undefined; const accesLibreUrlBySiretMatch = erpMatchWithScores.find((erp) => erp.siret === currentPivot)?.web_url ?? undefined; const accesLibreUrl = accesLibreUrlBySiretMatch ?? accesLibreUrlByFuzzyMatch ?? undefined; return accesLibreUrl == null ? undefined : (0, lieux_de_mediation_numerique_1.Url)(accesLibreUrl); }; const canProcessAccessibilite = (source, accessibilite) => { return (accessibilite?.colonne != null && source[accessibilite.colonne] != null && source[accessibilite.colonne] !== '' && !source[accessibilite.colonne].startsWith('https://acceslibre.beta.gouv.fr/static/js/widget.js')); }; const fixUrl = (url) => url.replace(/\(/g, '%28').replace(/\)/g, '%29'); const processFicheAccesLibre = (source, matching, accesLibreData, adresseProcessed) => canProcessAccessibilite(source, matching.fiche_acces_libre) ? (0, lieux_de_mediation_numerique_1.Url)(fixUrl(source[matching.fiche_acces_libre.colonne]?.toString() ?? '')) : getAccessibiliteFromAccesLibre(source, matching, accesLibreData, adresseProcessed); exports.processFicheAccesLibre = processFicheAccesLibre;