@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
JavaScript
;
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;