UNPKG

@gouvfr-anct/lieux-de-mediation-numerique

Version:

📚 Bibliothèque pour la modélisation des lieux de médiation numérique respectant le standard du schéma de données des lieux de médiation numériques

78 lines (77 loc) • 4.68 kB
export const generalFields = (lieuMediationNumerique) => ({ id: lieuMediationNumerique.id, nom: lieuMediationNumerique.nom, pivot: lieuMediationNumerique.pivot, ...(lieuMediationNumerique.services == null ? {} : { services: lieuMediationNumerique.services.join('|') }), ...(lieuMediationNumerique.typologies == null ? {} : { typologie: lieuMediationNumerique.typologies.join('|') }), ...(lieuMediationNumerique.structure_parente == null ? {} : { structure_parente: lieuMediationNumerique.structure_parente }) }); export const adresseFields = (lieuMediationNumerique) => ({ commune: lieuMediationNumerique.adresse.commune, code_postal: lieuMediationNumerique.adresse.code_postal, adresse: lieuMediationNumerique.adresse.voie, ...(lieuMediationNumerique.adresse.code_insee == null ? {} : { code_insee: lieuMediationNumerique.adresse.code_insee }), ...(lieuMediationNumerique.adresse.complement_adresse == null ? {} : { complement_adresse: lieuMediationNumerique.adresse.complement_adresse }) }); export const localisationFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.localisation?.latitude == null ? {} : { latitude: lieuMediationNumerique.localisation.latitude }), ...(lieuMediationNumerique.localisation?.longitude == null ? {} : { longitude: lieuMediationNumerique.localisation.longitude }) }); export const contactFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.contact?.telephone == null ? {} : { telephone: lieuMediationNumerique.contact.telephone }), ...(lieuMediationNumerique.contact?.courriels == null ? {} : { courriels: lieuMediationNumerique.contact.courriels.join('|') }), ...(lieuMediationNumerique.contact?.site_web == null ? {} : { site_web: lieuMediationNumerique.contact.site_web.join('|') }) }); export const presentationFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.presentation?.resume == null ? {} : { presentation_resume: lieuMediationNumerique.presentation.resume }), ...(lieuMediationNumerique.presentation?.detail == null ? {} : { presentation_detail: lieuMediationNumerique.presentation.detail }) }); export const accesFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.publics_specifiquement_adresses == null ? {} : { publics_specifiquement_adresses: lieuMediationNumerique.publics_specifiquement_adresses.join('|') }), ...(lieuMediationNumerique.prise_en_charge_specifique == null ? {} : { prise_en_charge_specifique: lieuMediationNumerique.prise_en_charge_specifique.join('|') }), ...(lieuMediationNumerique.frais_a_charge == null ? {} : { frais_a_charge: lieuMediationNumerique.frais_a_charge.join('|') }), ...(lieuMediationNumerique.itinerance == null ? {} : { itinerance: lieuMediationNumerique.itinerance.join('|') }), ...(lieuMediationNumerique.modalites_acces == null ? {} : { modalites_acces: lieuMediationNumerique.modalites_acces.join('|') }), ...(lieuMediationNumerique.modalites_accompagnement == null ? {} : { modalites_accompagnement: lieuMediationNumerique.modalites_accompagnement.join('|') }), ...(lieuMediationNumerique.fiche_acces_libre == null ? {} : { fiche_acces_libre: lieuMediationNumerique.fiche_acces_libre }) }); export const labelsFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.dispositif_programmes_nationaux == null ? {} : { dispositif_programmes_nationaux: lieuMediationNumerique.dispositif_programmes_nationaux.join('|') }), ...(lieuMediationNumerique.formations_labels == null ? {} : { formations_labels: lieuMediationNumerique.formations_labels.join('|') }), ...(lieuMediationNumerique.autres_formations_labels == null ? {} : { autres_formations_labels: lieuMediationNumerique.autres_formations_labels.join('|') }) }); export const disponibiliteFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.horaires == null ? {} : { horaires: lieuMediationNumerique.horaires }), ...(lieuMediationNumerique.prise_rdv == null ? {} : { prise_rdv: lieuMediationNumerique.prise_rdv }) }); const stringDate = (lieuMediationNumerique) => lieuMediationNumerique.date_maj instanceof Date ? lieuMediationNumerique.date_maj.toISOString() : lieuMediationNumerique.date_maj; export const collecteFields = (lieuMediationNumerique) => ({ ...(lieuMediationNumerique.source == null ? {} : { source: lieuMediationNumerique.source }), date_maj: stringDate(lieuMediationNumerique)?.split('T')[0] ?? '' });