From b52f33d72eecbfcda8abce6b7b2474ded979b895 Mon Sep 17 00:00:00 2001
From: David Sevilla Martin <dsevilla192@icloud.com>
Date: Sun, 14 May 2017 09:21:30 -0400
Subject: [PATCH] fix(web): add error handling and log error

---
 lib/Web.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/Web.js b/lib/Web.js
index 17e48e8..70a7d76 100644
--- a/lib/Web.js
+++ b/lib/Web.js
@@ -23,9 +23,9 @@ app.get('/', (req, res) => {
   res.render('index', { bot, repos, status, statusColor });
 });
 
-app.post(['/', '/gitlab'], (req, res) => {
+app.post('/', (req, res) => {
   const event = req.headers['x-gitlab-event'];
-  const eventName = event.replace(` Hook`, '').replace(/ /g, '_').toLowerCase();
+  const eventName = event && event.replace(` Hook`, '').replace(/ /g, '_').toLowerCase();
   const data = req.body;
 
   if (!event || !data || !data.project) return res.status(403).send('Invalid data. Plz use Gitlab webhooks.');
@@ -62,6 +62,12 @@ app.post(['/', '/gitlab'], (req, res) => {
   });
 });
 
+app.use((err, req, res, next) => { // eslint-disable-line no-unused-vars
+  if (err) Log.error(err);
+  res.status(500);
+  res.send(err.stack);
+});
+
 app.listen(port, ip, () => {
   Log.info(`Express | Listening on ${ip || 'localhost'}:${port}`);
 });