1
0
mirror of https://github.com/yldio/copilot.git synced 2024-11-14 23:30:05 +02:00
copilot/packages/portal-api/server.js

82 lines
1.4 KiB
JavaScript
Raw Normal View History

2017-04-28 00:59:03 +03:00
'use strict';
const Brule = require('brule');
const Good = require('good');
2017-04-28 00:59:03 +03:00
const Hapi = require('hapi');
const HapiSwagger = require('hapi-swagger');
2017-04-28 00:59:03 +03:00
const Inert = require('inert');
const Toppsy = require('toppsy');
2017-04-28 00:59:03 +03:00
const Vision = require('vision');
const Pack = require('./package');
const Portal = require('./lib');
const server = new Hapi.Server();
server.connection({ port: 3000 });
2017-04-28 00:59:03 +03:00
2017-06-19 17:37:38 +03:00
const swaggerOptions = {
2017-04-28 00:59:03 +03:00
info: {
'title': 'Portal API Documentation',
'version': Pack.version
}
};
2017-06-19 17:37:38 +03:00
const portalOptions = {
data: {
db: {
host: process.env.RETHINK_HOST || 'localhost'
}
}
};
const goodOptions = {
ops: {
interval: 1000
},
reporters: {
consoleReporter: [{
module: 'good-squeeze',
name: 'Squeeze',
args: [{ log: '*', response: '*', error: '*' }]
}, {
module: 'good-console'
}, 'stdout']
}
};
2017-04-28 00:59:03 +03:00
server.register([
Brule,
2017-04-28 00:59:03 +03:00
Inert,
Vision,
{
register: Good,
options: goodOptions
},
2017-06-19 17:37:38 +03:00
{
register: Portal,
options: portalOptions
},
2017-04-28 00:59:03 +03:00
{
register: HapiSwagger,
2017-06-19 17:37:38 +03:00
options: swaggerOptions
},
{
register: Toppsy,
options: { namespace: 'portal', subsystem: 'api' }
}
2017-06-21 01:02:40 +03:00
],
2017-04-28 00:59:03 +03:00
(err) => {
handlerError(err);
server.start((err) => {
handlerError(err);
console.log(`server started at http://localhost:${server.info.port}`);
});
}
);
function handlerError (error) {
if (error) {
console.error(error);
process.exit(1);
}
}