Working gateway
Change-Id: I8ca690fe9d1b7f8e20b438df1ddd48d6b2f99326
diff --git a/src/server.js b/src/server.js
new file mode 100644
index 0000000..da541ce
--- /dev/null
+++ b/src/server.js
@@ -0,0 +1,58 @@
+(function () {
+ 'use strict';
+
+ const express = require('express');
+ const app = express();
+ const config = require('./config/config.js').gateway;
+ const bodyParser = require('body-parser');
+ const cors = require('cors');
+ const socketIo = require('./controllers/websocket.js');
+ const logger = require('./config/logger.js');
+
+ // Apply middlewares
+ app.use(cors());
+ app.use(bodyParser.json());
+
+ // Load routes
+ require('./routes/core_proxy.js')(app);
+
+ app.get('/', function(req, res) {
+ res.send('Hello world');
+ });
+
+ const startServer = () => {
+
+ // if is running just return it
+ if(app.server) {
+ return app.server;
+ }
+
+ const server = app.listen(config.port, function() {
+ logger.info(`Express is listening to http://localhost:${config.port}`);
+
+ // once server is ready setup WebSocket
+ socketIo.create(server);
+
+ // start redis
+ require('./controllers/redis.js');
+ });
+ app.server = server;
+ return server;
+ };
+
+ const stopServer = () => {
+ if(app.server) {
+ app.server.close();
+ }
+ }
+
+ if(!module.parent) {
+ startServer();
+ }
+
+ module.exports = {
+ app: app,
+ start: startServer,
+ stop: stopServer
+ };
+})();
\ No newline at end of file