Failed Conditions
Push — master ( f5e7b3...711045 )
by Yo
01:30
created

index.js ➔ ... ➔ ???   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 1
c 3
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
"use strict";
2
3
const config = require('config');
4
const Hapi = require('hapi');
5
const logger = require('../logger');
6
const server = new Hapi.Server();
7
8
const wrapper = {};
9
10
server.connection({
11
    host: config.server.host,
12
    port: config.server.port
13
});
14
15
/**
16
 * @param {string}   method
17
 * @param {string}   path
18
 * @param {callback} handler
19
 */
20
const addRoute = (method, path, handler) => {
21
    server.route({
22
        method: method,
23
        path:path,
24
        handler: function (request, reply) {
25
            const response = new Promise((resolve, reject) => {
26
                try {
27
                    resolve(handler(request));
28
                } catch (e) {
29
                    reject(e);
30
                }
31
            });
32
33
            return reply(response).type('application/json');
34
        }
35
    });
36
};
37
38
/**
39
 * @params {Alfred} alfred
40
 * @returns {Promise}
41
 */
42
wrapper.start = (alfred) => {
43
    addRoute('GET', '/hello', () => {
44
        return Promise.resolve('hello world');
45
    });
46
    addRoute('GET', '/hello2', () => {
47
        return Promise.resolve('hello world2');
48
    });
49
50
    logger.starting('Alfred');
51
    return alfred.init()
52
        .then(() => logger.started('Alfred'))
53
        .then(() => {
54
            logger.starting('Server');
55
            return server.start()
56
                .then(() => {
57
                    logger.info('Server running ', {uri: server.info.uri});
58
                    logger.started('Server');
59
                })
60
            ;
61
        })
62
        .catch(error => {
63
            logger.error('Stopping server after an error');
64
            return server.stop()
65
                .then(() => {
66
                    throw error;
67
                })
68
            ;
69
        });
70
};
71
72
module.exports = wrapper;
73