UNPKG

1.88 kBJavaScriptView Raw
1const passport = require('passport');
2const util = require('./lib/services/util.service');
3const modelsService = require('./lib/services/models.service');
4const utilService = require('./lib/services/util.service');
5const modelDefinitionsService = require('./lib/services/modelDefinitions.service');
6const authService = require('./lib/services/auth.service');
7const geoService = require('./lib/services/geo.service');
8
9const init = (app, options, passportProfiles) => {
10 // Initialize mongoose and DB
11 require('./lib/mongoose.js')(options.mongodb_uri);
12
13 if (options.root_path) {
14 util.setRootPath(options.root_path);
15 }
16
17 options.models_path = options.models_path ? options.models_path : './app';
18 options.data_path = options.data_path ? options.data_path : './app/data';
19
20 // Initialize authService with authLevels
21 authService.init(options.authLevels);
22
23 // Get model definitions
24 let modelDefinitions = util.modelDefinitionsSingleLevel(util.getModelDefinitions(options.models_path)).filter(md => md.name !== 'User');
25
26 // Generate models
27 modelsService.generateModels(modelDefinitions, options);
28 modelDefinitions.unshift(modelsService.generateUserModel());
29
30 // Generate relationships
31 modelDefinitions = modelDefinitionsService.checkRelationships(modelDefinitions);
32
33 // Initialize passport
34 const passport_path = options.passport_path ? options.passport_path : './lib/auth/passport';
35 require(passport_path)(passport, modelsService.getModel('User'), passportProfiles);
36 app.use(passport.initialize());
37 app.use(passport.session());
38
39 // Generate routes
40 const routes = require('./lib/routes')(app, modelDefinitions, options, passport);
41}
42
43module.exports = {
44 init: init,
45 getModel: modelsService.getModel,
46 geo: geoService,
47 util: utilService
48};
\No newline at end of file