-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
49 lines (38 loc) · 1.83 KB
/
Copy pathindex.js
File metadata and controls
49 lines (38 loc) · 1.83 KB
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
const passport = require('passport');
const util = require('./lib/services/util.service');
const modelsService = require('./lib/services/models.service');
const utilService = require('./lib/services/util.service');
const modelDefinitionsService = require('./lib/services/modelDefinitions.service');
const authService = require('./lib/services/auth.service');
const geoService = require('./lib/services/geo.service');
const init = (app, options, passportProfiles, customValidations) => {
// Initialize mongoose and DB
require('./lib/mongoose.js')(options.mongodb_uri);
if (options.root_path) {
util.setRootPath(options.root_path);
}
options.models_path = options.models_path ? options.models_path : './app';
options.data_path = options.data_path ? options.data_path : './app/data';
// Initialize authService with authLevels
authService.init(options.authLevels);
// Get model definitions
let modelDefinitions = util.modelDefinitionsSingleLevel(util.getModelDefinitions(options.models_path)).filter(md => md.name !== 'User');
// Generate models
modelsService.generateModels(modelDefinitions, options, customValidations);
modelDefinitions.unshift(modelsService.generateUserModel());
// Generate relationships
modelDefinitions = modelDefinitionsService.checkRelationships(modelDefinitions);
// Initialize passport
const passport_path = options.passport_path ? options.passport_path : './lib/auth/passport';
require(passport_path)(passport, modelsService.getModel('User'), passportProfiles);
app.use(passport.initialize());
app.use(passport.session());
// Generate routes
const routes = require('./lib/routes')(app, modelDefinitions, options, passport);
}
module.exports = {
init: init,
getModel: modelsService.getModel,
geo: geoService,
util: utilService
};