From fd5cca78fbcd6484aa0774de9adb7a7acef17a5c Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Tue, 10 Oct 2017 10:51:35 -0300
Subject: [PATCH] Add download middleware to school route

---
 src/libs/routes/school.js | 42 +++++----------------------------------
 1 file changed, 5 insertions(+), 37 deletions(-)

diff --git a/src/libs/routes/school.js b/src/libs/routes/school.js
index a4eed83c..c91151cc 100644
--- a/src/libs/routes/school.js
+++ b/src/libs/routes/school.js
@@ -20,6 +20,10 @@ const request = require(`request`);
 
 const config = require(`${libs}/config`);
 
+const passport = require('passport');
+
+const download = require(`${libs}/middlewares/downloadDatabase`);
+
 const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
 
 let rqf = new ReqQueryFields();
@@ -471,42 +475,6 @@ schoolApp.get('/count', cache('15 day'), rqfCount.parse(), rqfCount.build(), (re
     next();
 }, query, id2str.transform(), response('school'));
 
-schoolApp.get('/count/download', (req, res, next) => {
-    // first, query the mapping
-    req.sql.from('mapping_escola')
-        .field('target_name')
-        .field('name');
-    next();
-}, query, (req, res, next) => {
-    req.resetSql();
-    next();
-}, rqfCount.parse(), rqfCount.build(), (req, res, next) => {
-    let username = req.query.user;
-    let email = req.query.email;
-
-    req.sql.from('escola').field('*');
-    let header = '';
-    req.result.forEach((result) => {
-        req.sql.field(result.name, result.target_name);
-        if(header === '') header += result.target_name;
-        else header = header + ';' + result.target_name;
-    });
-
-    let form = {
-        query: req.sql.toString(),
-        table: req.sql.tableFrom,
-        name: req.sql.tableFrom,
-        username,
-        email,
-        header
-    };
-    request.post(config.cdn.url + '/api/v1/file', {form}, (err, response, body) => {
-        if(err) {
-            log.error(err);
-            return res.json({error: err});
-        }
-        res.json({msg: 'Wait for download email'});
-    });
-});
+schoolApp.get('/count/download', passport.authenticate('bearer', { session: false }), rqfCount.parse(), rqfCount.build(), download('escola', 'mapping_escola'));
 
 module.exports = schoolApp;
-- 
GitLab