Skip to content

Commit

Permalink
feat: update schema
Browse files Browse the repository at this point in the history
  • Loading branch information
marc-gavanier committed Jul 25, 2024
1 parent 883717c commit 2a99521
Show file tree
Hide file tree
Showing 50 changed files with 1,715 additions and 2,481 deletions.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
"ts-node": "^10.9.1"
},
"dependencies": {
"@gouvfr-anct/lieux-de-mediation-numerique": "^1.22.1",
"@gouvfr-anct/lieux-de-mediation-numerique": "^2.0.1",
"@gouvfr-anct/timetable-to-osm-opening-hours": "^1.0.1",
"@turf/turf": "^6.5.0",
"axios": "^1.7.2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
/* eslint-disable @typescript-eslint/naming-convention, camelcase */

import {
DispositifProgrammeNational,
Frais,
ModaliteAcces,
ModaliteAccompagnement,
PriseEnChargeSpecifique,
PublicSpecifiquementAdresse,
Service,
Typologie
} from '@gouvfr-anct/lieux-de-mediation-numerique';
import { mediationNumeriqueToCsv } from './mediation-numerique.to-csv';

describe('output', (): void => {
Expand All @@ -14,41 +24,52 @@ describe('output', (): void => {
it('should convert schema de la médiation numérique single data to CSV with headers and one line', (): void => {
const csv: string = mediationNumeriqueToCsv([
{
accessibilite:
fiche_acces_libre:
'https://acceslibre.beta.gouv.fr/app/29-lampaul-plouarzel/a/bibliotheque-mediatheque/erp/mediatheque-13/',
adresse: '12 BIS RUE DE LECLERCQ',
cle_ban: '13001_3079_00001',
code_insee: '51454',
code_postal: '51100',
commune: 'Reims',
complement_adresse: "Le patio du bois de l'Aulne",
conditions_acces:
"Payant : L'accès au lieu et/ou à ses services est payant;Accepte le Pass numérique : Il est possible d'utiliser un Pass numérique pour accéder au lieu",
courriel: 'contact@laquincaillerie.tl',
frais_a_charge: [Frais.Payant, Frais.GratuitSousCondition].join('|'),
courriels: 'contact@laquincaillerie.tl',
date_maj: '2022-06-02',
horaires: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00',
id: 'structure-1',
labels_autres: 'SudLabs;Nièvre médiation numérique',
labels_nationaux: 'France Services;APTIC;Point relais CAF',
autres_formations_labels: ['SudLabs', 'Nièvre médiation numérique'].join('|'),
dispositif_programmes_nationaux: [
DispositifProgrammeNational.FranceServices,
DispositifProgrammeNational.CertificationPIX,
DispositifProgrammeNational.PointNumeriqueCAF
].join('|'),
latitude: 43.52609,
longitude: 5.41423,
modalites_accompagnement:
"Seul : j'ai accès à du matériel et une connexion;Avec de l'aide : je suis accompagné seul dans l'usage du numérique",
modalites_acces: [ModaliteAcces.ContacterParMail, ModaliteAcces.SePresenter].join('|'),
modalites_accompagnement: [ModaliteAccompagnement.EnAutonomie, ModaliteAccompagnement.AccompagnementIndividuel].join(
'|'
),
nom: 'Anonymal',
pivot: '43493312300029',
presentation_detail:
"Notre parcours d'initiation permet l'acquisition de compétences numériques de base. Nous proposons également un accompagnement à destination des personnes déjà initiées qui souhaiteraient approfondir leurs connaissances. Du matériel informatique est en libre accès pour nos adhérents tous les après-midis. En plus de d'accueillir les personnes dans notre lieu en semaine (sur rendez-vous), nous assurons une permanence le samedi matin dans la médiathèque XX.",
presentation_resume:
'Notre association propose des formations aux outils numériques à destination des personnes âgées.',
prise_rdv: 'https://www.rdv-solidarites.fr/',
publics_accueillis: 'Familles/enfants;Adultes;Déficience visuelle',
services:
'Devenir autonome dans les démarches administratives;Réaliser des démarches administratives avec un accompagnement;Prendre en main un smartphone ou une tablette',
publics_specifiquement_adresses: [
PublicSpecifiquementAdresse.FamillesEnfants,
PublicSpecifiquementAdresse.Seniors
].join('|'),
prise_en_charge_specifique: [PriseEnChargeSpecifique.Surdite, PriseEnChargeSpecifique.DeficienceVisuelle].join('|'),
services: [
Service.AideAuxDemarchesAdministratives,
Service.MaitriseDesOutilsNumeriquesDuQuotidien,
Service.AccesInternetEtMaterielInformatique
].join('|'),
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/',
source: 'Hubik',
structure_parente: 'Pôle emploi',
telephone: '+33180059880',
typologie: 'TIERS_LIEUX;ASSO'
typologie: [Typologie.TIERS_LIEUX, Typologie.ASSO].join('|')
}
]);

Expand All @@ -61,41 +82,52 @@ describe('output', (): void => {
it('should convert schema de la médiation numérique single data to CSV with headers and two lines', (): void => {
const csv: string = mediationNumeriqueToCsv([
{
accessibilite:
fiche_acces_libre:
'https://acceslibre.beta.gouv.fr/app/29-lampaul-plouarzel/a/bibliotheque-mediatheque/erp/mediatheque-13/',
adresse: '12 BIS RUE DE LECLERCQ',
cle_ban: '13001_3079_00001',
code_insee: '51454',
code_postal: '51100',
commune: 'Reims',
complement_adresse: "Le patio du bois de l'Aulne",
conditions_acces:
"Payant : L'accès au lieu et/ou à ses services est payant;Accepte le Pass numérique : Il est possible d'utiliser un Pass numérique pour accéder au lieu",
courriel: 'contact@laquincaillerie.tl',
frais_a_charge: [Frais.Payant, Frais.GratuitSousCondition].join('|'),
courriels: 'contact@laquincaillerie.tl',
date_maj: '2022-06-02',
horaires: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00',
id: 'structure-1',
labels_autres: 'SudLabs;Nièvre médiation numérique',
labels_nationaux: 'France Services;APTIC;Point relais CAF',
autres_formations_labels: ['SudLabs', 'Nièvre médiation numérique'].join('|'),
dispositif_programmes_nationaux: [
DispositifProgrammeNational.FranceServices,
DispositifProgrammeNational.CertificationPIX,
DispositifProgrammeNational.PointNumeriqueCAF
].join('|'),
latitude: 43.52609,
longitude: 5.41423,
modalites_accompagnement:
"Seul : j'ai accès à du matériel et une connexion;Avec de l'aide : je suis accompagné seul dans l'usage du numérique",
modalites_acces: [ModaliteAcces.ContacterParMail, ModaliteAcces.SePresenter].join('|'),
modalites_accompagnement: [ModaliteAccompagnement.EnAutonomie, ModaliteAccompagnement.AccompagnementIndividuel].join(
'|'
),
nom: 'Anonymal',
pivot: '43493312300029',
presentation_detail:
"Notre parcours d'initiation permet l'acquisition de compétences numériques de base. Nous proposons également un accompagnement à destination des personnes déjà initiées qui souhaiteraient approfondir leurs connaissances. Du matériel informatique est en libre accès pour nos adhérents tous les après-midis. En plus de d'accueillir les personnes dans notre lieu en semaine (sur rendez-vous), nous assurons une permanence le samedi matin dans la médiathèque XX.",
presentation_resume:
'Notre association propose des formations aux outils numériques à destination des personnes âgées.',
prise_rdv: 'https://www.rdv-solidarites.fr/',
publics_accueillis: 'Familles/enfants;Adultes;Déficience visuelle',
services:
'Devenir autonome dans les démarches administratives;Réaliser des démarches administratives avec un accompagnement;Prendre en main un smartphone ou une tablette',
publics_specifiquement_adresses: [
PublicSpecifiquementAdresse.FamillesEnfants,
PublicSpecifiquementAdresse.Seniors
].join('|'),
prise_en_charge_specifique: [PriseEnChargeSpecifique.Surdite, PriseEnChargeSpecifique.DeficienceVisuelle].join('|'),
services: [
Service.AideAuxDemarchesAdministratives,
Service.MaitriseDesOutilsNumeriquesDuQuotidien,
Service.AccesInternetEtMaterielInformatique
].join('|'),
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/',
source: 'Hubik',
structure_parente: 'Pôle emploi',
telephone: '+33180059880',
typologie: 'TIERS_LIEUX;ASSO'
typologie: [Typologie.TIERS_LIEUX, Typologie.ASSO].join('|')
},
{
adresse: '51 rue de la république',
Expand All @@ -105,8 +137,7 @@ describe('output', (): void => {
id: 'structure-2',
nom: 'Médiation république',
pivot: '43497452600012',
services:
'Devenir autonome dans les démarches administratives;Réaliser des démarches administratives avec un accompagnement'
services: [Service.AideAuxDemarchesAdministratives, Service.AccesInternetEtMaterielInformatique].join('|')
}
]);

Expand All @@ -127,8 +158,7 @@ describe('output', (): void => {
id: 'structure-2',
nom: 'Médiation république "MRPP"',
pivot: '43497452600012',
services:
'Devenir autonome dans les démarches administratives;Réaliser des démarches administratives avec un accompagnement'
services: [Service.AideAuxDemarchesAdministratives, Service.AccesInternetEtMaterielInformatique].join('|')
}
]);

Expand All @@ -143,20 +173,25 @@ describe('output', (): void => {
{
id: '36',
nom: 'Pole Emploi Biarritz (permanence St Palais)',
services:
'Accéder à une connexion internet;Prendre en main un ordinateur;Accéder à du matériel;Approfondir ma culture numérique;Créer avec le numérique;Promouvoir la citoyenneté numérique;Utiliser le numérique au quotidien;Favoriser mon insertion professionnelle',
services: [
Service.AccesInternetEtMaterielInformatique,
Service.MaitriseDesOutilsNumeriquesDuQuotidien,
Service.LoisirsEtCreationsNumeriques,
Service.UtilisationSecuriseeDuNumerique,
Service.InsertionProfessionnelleViaLeNumerique
].join('|'),
pivot: '00000000000000',
commune: 'Saint Palais',
code_postal: '64120',
adresse: 'Maison France Service',
latitude: 43.323496,
longitude: -1.037223,
courriel: 'ape.64062@pole-emploi.fr',
courriels: 'ape.64062@pole-emploi.fr',
site_web: 'https://www.pole-emploi.fr/',
presentation_detail:
'2 postes en libre acces avec imprimantes - scanners. Acces aux principaux sites de services publics.\nAteliers d\'utilisation de "pole-emploi.fr"\nPrescription de formation "HSP socle - les savoirs',
publics_accueillis: 'Jeunes (16-26 ans);Adultes;Seniors (+ 65 ans)',
conditions_acces: 'Gratuit : Je peux accéder gratuitement au lieu et à ses services',
publics_specifiquement_adresses: [PublicSpecifiquementAdresse.Jeunes, PublicSpecifiquementAdresse.Seniors].join('|'),
frais_a_charge: [Frais.Gratuit].join('|'),
modalites_accompagnement: "Avec de l'aide : je suis accompagné seul dans l'usage du numérique",
source: 'Fibre 64',
date_maj: '1969-12-31'
Expand All @@ -174,8 +209,7 @@ describe('output', (): void => {
{
id: '8fffbaf6-56e2-4501-958a-25dc56a572a4',
nom: 'EMMAUS CONNECT FONDATEUR ABBE PIERRE',
services:
'Prendre en main un smartphone ou une tablette;Prendre en main un ordinateur;Utiliser le numérique au quotidien;Approfondir ma culture numérique',
services: [Service.MaitriseDesOutilsNumeriquesDuQuotidien, Service.LoisirsEtCreationsNumeriques].join('|'),
pivot: '79227291600042',
typologie: 'ASSO',
commune: 'Lille',
Expand All @@ -185,14 +219,17 @@ describe('output', (): void => {
latitude: 50.624933,
longitude: 3.051349,
telephone: '+33180059880',
courriel: 'cslille@emmaus-connect.org',
courriels: 'cslille@emmaus-connect.org',
site_web: 'https://emmaus-connect.org/',
presentation_resume: 'Faire du numérique une chance pour tous.',
presentation_detail:
'Emmaüs Connect agit depuis 2013 pour permettre aux personnes en situation de précarité sociale et numérique d’accéder aux outils en ligne devenus indispensables. Être coupé d’internet aujourd’hui, c’est être exclu de services essentiels de la vie quotidienne, c’est s’éloigner du retour à l’emploi, du lien social.<br><br>**L’association a la particularité de travailler sur les 3 aspects de la précarité numérique : l’accès au matériel, l’accès aux moyens de connexion et l’accompagnement vers des compétences essentielles.**A ce jour, plus de 135 000 personnes ont pu être aidées au sein de nos [lieux d’accueil](<https://emmaus-connect.org/nous-trouver/>) ou de Relais Numériques partenaires.L’association propose également des [formations et des outils](<https://emmaus-connect.org/formations-professionnels/>) aux acteurs sociaux et opérateurs de services publics pour transmettre ses méthodes avec l’ambition de changer d’échelle dans l’inclusion numérique sur tout le territoire.',
conditions_acces: 'Gratuit : Je peux accéder gratuitement au lieu et à ses services',
frais_a_charge: [Frais.Gratuit].join('|'),
modalites_accompagnement: "Avec de l'aide : je suis accompagné seul dans l'usage du numérique",
labels_nationaux: 'CNFS;APTIC',
dispositif_programmes_nationaux: [
DispositifProgrammeNational.ConseillersNumeriques,
DispositifProgrammeNational.CertificationPIX
].join('|'),
horaires:
'Tu 09:15-18:30;We 09:15-18:30;Th 09:15-18:30;Fr 09:15-18:30;Sa 09:15-12:30; "fermé au public les lundis, horaires variables"',
source: 'dora',
Expand Down
35 changes: 20 additions & 15 deletions src/common/mediation-numerique/to-csv/mediation-numerique.to-csv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,27 @@ const HEADERS: (keyof SchemaLieuMediationNumerique)[] = [
'complement_adresse',
'latitude',
'longitude',
'cle_ban',
'typologie',
'telephone',
'courriel',
'courriels',
'site_web',
'horaires',
'presentation_resume',
'presentation_detail',
'source',
'itinerance',
'structure_parente',
'date_maj',
'services',
'publics_accueillis',
'conditions_acces',
'labels_nationaux',
'labels_autres',
'publics_specifiquement_adresses',
'prise_en_charge_specifique',
'frais_a_charge',
'dispositif_programmes_nationaux',
'formations_labels',
'autres_formations_labels',
'modalites_acces',
'modalites_accompagnement',
'accessibilite',
'fiche_acces_libre',
'prise_rdv'
];

Expand All @@ -47,24 +50,26 @@ const fieldsArrayFrom = (lieuMediationNumerique: SchemaLieuMediationNumerique):
lieuMediationNumerique.complement_adresse,
lieuMediationNumerique.latitude?.toString(),
lieuMediationNumerique.longitude?.toString(),
lieuMediationNumerique.cle_ban,
lieuMediationNumerique.typologie,
lieuMediationNumerique.telephone,
lieuMediationNumerique.courriel,
lieuMediationNumerique.courriels,
lieuMediationNumerique.site_web,
lieuMediationNumerique.horaires?.replace(/"/gu, '').replace(/\n/gu, ''),
lieuMediationNumerique.presentation_resume?.replace(/"/gu, '').replace(/\n/gu, ''),
lieuMediationNumerique.presentation_detail?.replace(/"/gu, '').replace(/\n/gu, ''),
lieuMediationNumerique.source,
lieuMediationNumerique.structure_parente,
lieuMediationNumerique.date_maj,
lieuMediationNumerique.services.replace(/"/gu, '').replace(/\n/gu, ''),
lieuMediationNumerique.publics_accueillis,
lieuMediationNumerique.conditions_acces,
lieuMediationNumerique.labels_nationaux,
lieuMediationNumerique.labels_autres,
lieuMediationNumerique.services?.replace(/"/gu, '').replace(/\n/gu, ''),
lieuMediationNumerique.publics_specifiquement_adresses,
lieuMediationNumerique.prise_en_charge_specifique,
lieuMediationNumerique.modalites_acces,
lieuMediationNumerique.modalites_accompagnement,
lieuMediationNumerique.accessibilite,
lieuMediationNumerique.dispositif_programmes_nationaux,
lieuMediationNumerique.formations_labels,
lieuMediationNumerique.autres_formations_labels,
lieuMediationNumerique.modalites_accompagnement,
lieuMediationNumerique.fiche_acces_libre,
lieuMediationNumerique.prise_rdv
];

Expand Down
Loading

0 comments on commit 2a99521

Please sign in to comment.