-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
75 lines (64 loc) · 1.72 KB
/
index.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
/**
* Concierge micro service
* Created on: 2016-04-01
* Version 0.1
*/
'use strict';
// Load .env config for development environments
require('dotenv').config({ silent: true });
const pkg = require('./package.json');
const Hapi = require('hapi');
const logger = require('./logger');
const Inert = require('inert');
const Vision = require('vision');
const HapiSwagger = require('hapi-swagger');
const Pack = require('./package');
var mongoose = require('mongoose');
require('events').EventEmitter.prototype._maxListeners = 100;
// Open DB connection
global.mongo = process.env.DB_CONNECTION || 'mongodb://localhost/' + pkg.name;
console.log("my db:", global.mongo);
global.db = mongoose.connect(global.mongo);
// Add scripts from updates folder
// TODO: make this as auto discovery!
var updateAccounts = require('./updates/0.0.1.account');
updateAccounts();
const server = new Hapi.Server();
server.connection({
host: process.env.APP_HOST || 'localhost',
port: process.env.APP_PORT || 8001,
router: {stripTrailingSlash: true}
});
const swaggerOptions = {
enableDocumentation: true,
info: {
title: 'Concierge',
version: Pack.version,
description: 'This API is created for services and apps discovery.'
}
};
server.register([
Inert,
Vision,
{
'register': HapiSwagger,
'options': swaggerOptions
},
{
register: require("./plugins/conciergeDesk"),
options: {
basePath: server.info.uri
}
}
], function (err) {
if (err) {
logger.error('Failed to load a plugin:', err);
throw err;
}
server.start((err) => {
if (err) {
throw err;
}
logger.info('Server started at: ' + server.info.uri + ' with [' + Object.keys(server.plugins).join(', ') + '] enabled');
});
});