From 55b92b7b6725d35a9514e542a0232614be0532a6 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Fri, 14 Oct 2016 14:31:58 -0300
Subject: [PATCH] Query middleware throws error on empty result

---
 gulpfile.babel.js             | 4 ++--
 src/libs/app.js               | 2 +-
 src/libs/middlewares/query.js | 1 +
 src/libs/routes/enrollment.js | 7 +------
 4 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index b2758b0a..f9436ee9 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -74,11 +74,11 @@ gulp.task('pre-test', () => {
 gulp.task('test', ['pre-test'], () => {
     process.chdir('build');
     gulp.src('test/test.js', {read: false})
-    .pipe(mocha())
+    .pipe(mocha({timeout: 15000}))
     .pipe(istanbul.writeReports())
     .pipe(istanbul.enforceThresholds({
         thresholds: {
-            global: 80 
+            global: 80
         }
     }))
     .on('error', () => {
diff --git a/src/libs/app.js b/src/libs/app.js
index f43abfb9..37e02f87 100644
--- a/src/libs/app.js
+++ b/src/libs/app.js
@@ -41,7 +41,7 @@ app.use('/api/v1', api);
 // Catch 404 and forward to error handler
 app.use((req, res, next) => {
     res.status(404);
-    log.debug('%s %d %s', req.method, res.statusCode, req.url);
+    log.error('%s %d %s', req.method, res.statusCode, req.url);
     res.json({ error: 'Not found' }).end();
 });
 
diff --git a/src/libs/middlewares/query.js b/src/libs/middlewares/query.js
index a4f20e3b..70a9aab6 100644
--- a/src/libs/middlewares/query.js
+++ b/src/libs/middlewares/query.js
@@ -9,6 +9,7 @@ function query(req, res, next) {
     execQuery(sql.text, sql.values).then((result) => {
         log.debug(result);
         req.result = result;
+        if(result.length === 0) next({status: 404, message: 'Not Found'});
         next();
     }, (error) => {
         next(error);
diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js
index 060976f7..f0c81a55 100644
--- a/src/libs/routes/enrollment.js
+++ b/src/libs/routes/enrollment.js
@@ -209,11 +209,6 @@ enrollmentApp.get('/', (req, res, next) => {
         .group('turmas.ano_censo')
         .order('turmas.ano_censo');
     next();
-}, query, (req, res, next) => {
-    if(req.result.length === 0) {
-        req.result.push({total: 0});
-    }
-    next();
-}, response('enrollment'));
+}, query, response('enrollment'));
 
 module.exports = enrollmentApp;
-- 
GitLab