UNPKG

@gouvfr-anct/mednum

Version:

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

67 lines (66 loc) 4.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeOldLieux = exports.mergeLieux = void 0; const mergeArrayStrings = (arrayString1, arrayString2) => Array.from(new Set([...arrayString1.split('|'), ...arrayString2.split('|')])).join('|'); const mergeServices = (services1, services2) => services1 == null || services2 == null ? {} : { services: mergeArrayStrings(services1, services2) }; const mergeModalitesAccompagnement = (modalitesAccompagnement1, modalitesAccompagnement2) => modalitesAccompagnement1 == null || modalitesAccompagnement2 == null ? {} : { modalites_accompagnement: mergeArrayStrings(modalitesAccompagnement1, modalitesAccompagnement2) }; const mergeFraisACharge = (fraisACharge1, fraisACharge2) => fraisACharge1 == null || fraisACharge2 == null ? {} : { frais_a_charge: mergeArrayStrings(fraisACharge1, fraisACharge2) }; const mergePriseEnChargeSpecifique = (priseEnChargeSpecifique1, priseEnChargeSpecifique2) => priseEnChargeSpecifique1 == null || priseEnChargeSpecifique2 == null ? {} : { prise_en_charge_specifique: mergeArrayStrings(priseEnChargeSpecifique1, priseEnChargeSpecifique2) }; const mergePublicsSpecifiquementAdresses = (publicsSpecifiquementAdresses1, publicsSpecifiquementAdresses2) => publicsSpecifiquementAdresses1 == null || publicsSpecifiquementAdresses2 == null ? {} : { publics_specifiquement_adresses: mergeArrayStrings(publicsSpecifiquementAdresses1, publicsSpecifiquementAdresses2) }; const mergeModalitesAcces = (modalitesAcces1, modalitesAcces2) => modalitesAcces1 == null || modalitesAcces2 == null ? {} : { modalites_acces: mergeArrayStrings(modalitesAcces1, modalitesAcces2) }; const mergeDispositifProgrammesNationaux = (dispositifProgrammesNationaux1, dispositifProgrammesNationaux2) => dispositifProgrammesNationaux1 == null || dispositifProgrammesNationaux2 == null ? {} : { dispositif_programmes_nationaux: mergeArrayStrings(dispositifProgrammesNationaux1, dispositifProgrammesNationaux2) }; const mergeFormationsLabels = (formationsLabels1, formationsLabels2) => formationsLabels1 == null || formationsLabels2 == null ? {} : { formations_labels: mergeArrayStrings(formationsLabels1, formationsLabels2) }; const mergeAutresFormationsLabels = (autresFormationsLabels1, autresFormationsLabels2) => autresFormationsLabels1 == null || autresFormationsLabels2 == null ? {} : { autres_formations_labels: mergeArrayStrings(autresFormationsLabels1, autresFormationsLabels2) }; const mergeCourriels = (courriels1, courriels2) => courriels1 == null || courriels2 == null ? {} : { courriels: mergeArrayStrings(courriels1, courriels2) }; const mergeSiteWeb = (siteWeb1, siteWeb2) => siteWeb1 == null || siteWeb2 == null ? {} : { site_web: mergeArrayStrings(siteWeb1, siteWeb2) }; const mergeTypologie = (typologie1, typologie2) => typologie1 == null || typologie2 == null ? {} : { typologie: mergeArrayStrings(typologie1, typologie2) }; const mergeId = (lieu1, lieu2) => [lieu1.id, lieu2.id] .sort() .join('__') .replace(/-?mediation-numerique-?/g, ''); const ignoreDefaultPivot = (lieu1, lieu2) => ({ pivot: lieu1.pivot === '00000000000000' ? lieu2.pivot : lieu1.pivot }); const mergeLieux = (lieu1, lieu2) => lieu2 == null ? lieu1 : { ...lieu2, ...lieu1, id: mergeId(lieu1, lieu2), ...ignoreDefaultPivot(lieu1, lieu2), ...mergeServices(lieu1.services, lieu2.services), ...mergeModalitesAccompagnement(lieu1.modalites_accompagnement, lieu2.modalites_accompagnement), ...mergeModalitesAcces(lieu1.modalites_acces, lieu2.modalites_acces), ...mergeFraisACharge(lieu1.frais_a_charge, lieu2.frais_a_charge), ...mergePriseEnChargeSpecifique(lieu1.prise_en_charge_specifique, lieu2.prise_en_charge_specifique), ...mergePublicsSpecifiquementAdresses(lieu1.publics_specifiquement_adresses, lieu2.publics_specifiquement_adresses), ...mergeDispositifProgrammesNationaux(lieu1.dispositif_programmes_nationaux, lieu2.dispositif_programmes_nationaux), ...mergeFormationsLabels(lieu1.formations_labels, lieu2.formations_labels), ...mergeAutresFormationsLabels(lieu1.autres_formations_labels, lieu2.autres_formations_labels), ...mergeCourriels(lieu1.courriels, lieu2.courriels), ...mergeSiteWeb(lieu1.site_web, lieu2.site_web), ...mergeTypologie(lieu1.typologie, lieu2.typologie) }; exports.mergeLieux = mergeLieux; const mergeOldLieux = (lieu1, lieu2) => lieu2 == null ? lieu1 : { ...lieu1, id: mergeId(lieu1, lieu2), ...mergeDispositifProgrammesNationaux(lieu1.dispositif_programmes_nationaux, lieu2.dispositif_programmes_nationaux) }; exports.mergeOldLieux = mergeOldLieux;