-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathcreeUtilisateurDemo.js
112 lines (102 loc) · 3.65 KB
/
creeUtilisateurDemo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
const fabriqueAdaptateurPersistance = require('./src/adaptateurs/fabriqueAdaptateurPersistance');
const DepotDonnees = require('./src/depotDonnees');
const DescriptionService = require('./src/modeles/descriptionService');
const Referentiel = require('./src/referentiel');
const BusEvenements = require('./src/bus/busEvenements');
const {
fabriqueAdaptateurGestionErreur,
} = require('./src/adaptateurs/fabriqueAdaptateurGestionErreur');
const {
fabriqueAdaptateurChiffrement,
} = require('./src/adaptateurs/fabriqueAdaptateurChiffrement');
const adaptateurRechercheEntite = require('./src/adaptateurs/adaptateurRechercheEntrepriseAPI');
const { fabriqueAdaptateurUUID } = require('./src/adaptateurs/adaptateurUUID');
const referentiel = Referentiel.creeReferentiel();
const descriptionService = new DescriptionService(
{
delaiAvantImpactCritique: 'plusUneJournee',
localisationDonnees: 'france',
nomService: 'Dossier de test',
presentation:
"Le service créé par MonServiceSécurisé comme donnée d'exemple sur ses environnements de DÉMO.",
provenanceService: 'developpement',
statutDeploiement: 'enLigne',
typeService: ['siteInternet'],
organisationResponsable: {
siret: process.env.SIRET_ENTITE_UTILISATEUR_DEMO,
nom: process.env.NOM_ENTITE_UTILISATEUR_DEMO,
departement: process.env.DEPARTEMENT_ENTITE_UTILISATEUR_DEMO,
},
nombreOrganisationsUtilisatrices: { borneBasse: 1, borneHaute: 5 },
niveauSecurite: 'niveau1',
},
referentiel
);
const creeDonnees = async (depotDonnees, adaptateurPersistance) => {
const u = await depotDonnees.nouvelUtilisateur({
prenom: process.env.PRENOM_UTILISATEUR_DEMO,
nom: process.env.NOM_UTILISATEUR_DEMO,
email: process.env.EMAIL_UTILISATEUR_DEMO,
entite: {
siret: process.env.SIRET_ENTITE_UTILISATEUR_DEMO,
nom: process.env.NOM_ENTITE_UTILISATEUR_DEMO,
departement: process.env.DEPARTEMENT_ENTITE_UTILISATEUR_DEMO,
},
estimationNombreServices: {
borneBasse: '1',
borneHaute: '10',
},
cguAcceptees: true,
});
await depotDonnees.metsAJourMotDePasse(
u.id,
process.env.MOT_DE_PASSE_UTILISATEUR_DEMO
);
const idService = await depotDonnees.nouveauService(u.id, {
descriptionService: descriptionService.toJSON(),
});
const tacheService = {
id: fabriqueAdaptateurUUID().genereUUID(),
idService,
nature: 'niveauSecuriteRetrograde',
donnees: {
nouveauxBesoins: 'élémentaires',
},
};
await adaptateurPersistance.ajouteTacheDeService(tacheService);
const suggestionAction = {
idService,
nature: 'controleBesoinsDeSecuriteRetrogrades',
};
await adaptateurPersistance.ajouteSuggestionAction(suggestionAction);
};
const main = async () => {
if (process.env.CREATION_UTILISATEUR_DEMO) {
const adaptateurPersistance = fabriqueAdaptateurPersistance(
process.env.NODE_ENV
);
const busEvenements = new BusEvenements({
adaptateurGestionErreur: fabriqueAdaptateurGestionErreur(),
});
const adaptateurChiffrement = fabriqueAdaptateurChiffrement();
const depotDonnees = DepotDonnees.creeDepot({
adaptateurPersistance,
adaptateurRechercheEntite,
adaptateurChiffrement,
busEvenements,
});
/* eslint-disable no-console */
const u = await depotDonnees.utilisateurAvecEmail(
process.env.EMAIL_UTILISATEUR_DEMO
);
if (u) {
console.log('Utilisateur déjà existant !…');
process.exit(0);
}
await creeDonnees(depotDonnees, adaptateurPersistance);
console.log('Utilisateur de démonstration créé !');
process.exit(0);
/* eslint-enable no-console */
}
};
main().then(() => {});