var express = require('express');
var app = module.exports = express();
var bodyParser = require('body-parser');
var config = require('../application/config.js');
var database = require('../application/database.js');

// Body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

// Load routes
app.use('/', require('../application/router.js'));

app.start = function(port) {
    var listener = app.listen(port ? port : config.app.port, function() {
        var servicePath = 'http://' + listener.address().address + ':' + listener.address().port;
        database.init();

        if (config.app.debug) {
            let packageJson = require('../package.json');
            console.log(`Web server ${packageJson.name} listening at: ${servicePath}`);
            console.log(`${packageJson.name} service debug mode enabled`);
        }
    });
    return listener;
};

if (require.main === module) {
    app.start();
}