summaryrefslogtreecommitdiff
path: root/goodgame/src/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'goodgame/src/app.js')
-rw-r--r--goodgame/src/app.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/goodgame/src/app.js b/goodgame/src/app.js
new file mode 100644
index 0000000..ac22693
--- /dev/null
+++ b/goodgame/src/app.js
@@ -0,0 +1,50 @@
+const express = require('express');
+const cors = require('cors');
+const bodyParser = require('body-parser');
+const helmet = require('helmet');
+const expressWinston = require('express-winston');
+const swaggerUi = require('swagger-ui-express');
+
+const swaggerSpec = require('./utils/swagger');
+const errorHandlers = require('./utils/errorHandlers');
+const { winstonConfig } = require('./utils/config');
+const unitRoutes = require('./routes/unit');
+
+const app = express();
+
+app.use(cors());
+
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({ extended: true }));
+
+app.use(helmet());
+
+app.use((req, res, next) => {
+ res.locals.user = req.user || null;
+ next();
+});
+
+/* istanbul ignore if */
+if (process.env.NODE_ENV !== 'test') {
+ app.use(expressWinston.logger(winstonConfig));
+}
+
+const options = {
+ explorer: true,
+};
+
+app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, options));
+app.use('/', unitRoutes);
+
+/* istanbul ignore if */
+if (process.env.NODE_ENV !== 'test') {
+ app.use(expressWinston.errorLogger(winstonConfig));
+}
+
+app.use(errorHandlers.notFound);
+
+app.use(errorHandlers.flashValidationErrors);
+
+app.use(errorHandlers.productionErrors);
+
+module.exports = app;