-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: dispositifs programmes nationaux schema update
- Loading branch information
Showing
26 changed files
with
198 additions
and
145 deletions.
There are no files selected for viewing
27 changes: 27 additions & 0 deletions
27
src/models/dispositifs-programmes-nationaux/dispositifs-programmes-nationaux.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
import { DispositifProgrammeNational, DispositifsProgrammesNationaux } from './dispositifs-programmes-nationaux'; | ||
import { DispositifsProgrammesNationauxError } from './errors'; | ||
|
||
describe('dispositif et programme national model', (): void => { | ||
it('should create valid dispositifs et programmes nationaux', (): void => { | ||
const dispositifsProgrammesNationaux: DispositifsProgrammesNationaux = DispositifsProgrammesNationaux([ | ||
DispositifProgrammeNational.FranceServices | ||
]); | ||
|
||
expect(dispositifsProgrammesNationaux).toStrictEqual([DispositifProgrammeNational.FranceServices]); | ||
}); | ||
|
||
it('should not create invalid dispositifs et programmes nationaux', (): void => { | ||
expect((): void => { | ||
DispositifsProgrammesNationaux(['France Emploi' as DispositifProgrammeNational]); | ||
}).toThrow(new DispositifsProgrammesNationauxError('France Emploi' as DispositifProgrammeNational)); | ||
}); | ||
|
||
it('should not create invalid dispositifs et programmes nationaux containing a valid and an invalid value', (): void => { | ||
expect((): void => { | ||
DispositifsProgrammesNationaux([ | ||
DispositifProgrammeNational.FranceServices, | ||
'France Emploi' as DispositifProgrammeNational | ||
]); | ||
}).toThrow(new DispositifsProgrammesNationauxError('France Emploi' as DispositifProgrammeNational)); | ||
}); | ||
}); |
44 changes: 44 additions & 0 deletions
44
src/models/dispositifs-programmes-nationaux/dispositifs-programmes-nationaux.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import { Model } from '../model'; | ||
import { DispositifsProgrammesNationauxError } from './errors'; | ||
|
||
export enum DispositifProgrammeNational { | ||
AidantsConnect = 'Aidants Connect', | ||
BibliothequesNumeriqueDeReference = 'Bibliothèques numérique de référence', | ||
CertificationPix = 'Certification PIX', | ||
ConseillersNumeriques = 'Conseillers numériques', | ||
EmmausConnect = 'Emmaüs Connect', | ||
FranceServices = 'France Services', | ||
GrandesEcolesDuNumerique = 'Grandes écoles du numérique', | ||
LaCroixRouge = 'La Croix Rouge', | ||
PointAccesNumeriqueCAF = "Point d'accès numérique CAF", | ||
PromeneursDuNet = 'Promeneurs du net', | ||
RelaisNumerique = 'Relais numérique (Emmaüs Connect)' | ||
} | ||
|
||
export type DispositifsProgrammesNationaux = Model<'DispositifsProgrammesNationaux', DispositifProgrammeNational[]>; | ||
|
||
export type DispositifProgrammeNationalIndefini = 'dispositif ou programme national indéfini'; | ||
|
||
const firstInvalidDispositifProgrammeNational = (dispositifProgrammeNational: DispositifProgrammeNational): boolean => | ||
!Object.values(DispositifProgrammeNational).includes(dispositifProgrammeNational); | ||
|
||
const throwDispositifsProgrammesNationauxError = ( | ||
dispositifsProgrammesNationaux: DispositifProgrammeNational[] | ||
): DispositifsProgrammesNationaux => { | ||
throw new DispositifsProgrammesNationauxError( | ||
dispositifsProgrammesNationaux.find(firstInvalidDispositifProgrammeNational) ?? 'dispositif ou programme national indéfini' | ||
); | ||
}; | ||
|
||
const isDispositifsProgrammesNationaux = ( | ||
dispositifsProgrammesNationaux: DispositifProgrammeNational[] | ||
): dispositifsProgrammesNationaux is DispositifsProgrammesNationaux => | ||
dispositifsProgrammesNationaux.find(firstInvalidDispositifProgrammeNational) == null; | ||
|
||
/* eslint-disable-next-line @typescript-eslint/naming-convention */ | ||
export const DispositifsProgrammesNationaux = ( | ||
dispositifsProgrammesNationaux: DispositifProgrammeNational[] | ||
): DispositifsProgrammesNationaux => | ||
isDispositifsProgrammesNationaux(dispositifsProgrammesNationaux) | ||
? dispositifsProgrammesNationaux | ||
: throwDispositifsProgrammesNationauxError(dispositifsProgrammesNationaux); |
12 changes: 12 additions & 0 deletions
12
src/models/dispositifs-programmes-nationaux/errors/dispositifs-programmes-nationaux.error.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import { ModelError } from '../../../errors'; | ||
import { DispositifProgrammeNational, DispositifProgrammeNationalIndefini } from '../dispositifs-programmes-nationaux'; | ||
import { LieuMediationNumerique } from '../../lieu-mediation-numerique'; | ||
|
||
export class DispositifsProgrammesNationauxError extends ModelError<LieuMediationNumerique> { | ||
constructor(dispositifProgrammeNational: DispositifProgrammeNational | DispositifProgrammeNationalIndefini) { | ||
super( | ||
'dispositifs_programmes_nationaux', | ||
`Le dispositif ou le programme national '${dispositifProgrammeNational}' n'est pas une valeur admise` | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export * from './dispositifs-programmes-nationaux.error'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
export * from './errors'; | ||
export * from './dispositifs-programmes-nationaux'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -227,7 +227,7 @@ describe('service data inclusion to structure data inclusion', (): void => { | |
telephone: '+33180059880', | ||
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/', | ||
horaires_ouverture: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00', | ||
labels_nationaux: ['france-service', 'aptic'], | ||
dispositifs_programmes_nationaux: ['france-service'], | ||
labels_autres: ['SudLabs', 'Nièvre médiation numérique'], | ||
latitude: 43.52609, | ||
longitude: 5.41423, | ||
|
@@ -313,7 +313,7 @@ describe('service data inclusion to structure data inclusion', (): void => { | |
telephone: '0102030405', | ||
courriel: '[email protected]', | ||
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/', | ||
labels_nationaux: ['france-service', 'aptic'], | ||
dispositifs_programmes_nationaux: ['france-service'], | ||
labels_autres: ['SudLabs', 'Nièvre médiation numérique'], | ||
accessibilite: 'https://acceslibre.beta.gouv.fr/app/29-lampaul-plouarzel/a/bibliotheque-mediatheque/erp/mediatheque-13/', | ||
horaires_ouverture: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00', | ||
|
@@ -338,7 +338,7 @@ describe('service data inclusion to structure data inclusion', (): void => { | |
telephone: '+33180059880', | ||
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/', | ||
horaires_ouverture: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00', | ||
labels_nationaux: ['france-service', 'aptic'], | ||
dispositifs_programmes_nationaux: ['france-service'], | ||
labels_autres: ['SudLabs', 'Nièvre médiation numérique'], | ||
latitude: 43.52609, | ||
longitude: 5.41423, | ||
|
@@ -420,7 +420,7 @@ describe('service data inclusion to structure data inclusion', (): void => { | |
courriel: '[email protected]', | ||
telephone: '+33180059880', | ||
site_web: 'https://www.laquincaillerie.tl/;https://m.facebook.com/laquincaillerienumerique/', | ||
labels_nationaux: ['france-service', 'aptic'], | ||
dispositifs_programmes_nationaux: ['france-service'], | ||
labels_autres: ['SudLabs', 'Nièvre médiation numérique'], | ||
accessibilite: 'https://acceslibre.beta.gouv.fr/app/29-lampaul-plouarzel/a/bibliotheque-mediatheque/erp/mediatheque-13/', | ||
horaires_ouverture: 'Mo-Fr 09:00-12:00,14:00-18:30; Sa 08:30-12:00', | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.