From c0882fb38f70780d2af80b8c0fffb22ed67dc49d Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Tue, 27 Jun 2017 09:49:53 -0300
Subject: [PATCH] Write csv

---
 package.json              |  1 +
 src/libs/routes/region.js | 28 +++++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/package.json b/package.json
index f52de483..1101d80e 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
     "faker": "^3.1.0",
     "forever": "^0.15.2",
     "js2xmlparser": "^2.0.2",
+    "jsonexport": "^2.0.9",
     "jwt-simple": "^0.5.0",
     "lodash": "^4.17.2",
     "method-override": "^2.3.3",
diff --git a/src/libs/routes/region.js b/src/libs/routes/region.js
index e11f196a..e8e3f3de 100644
--- a/src/libs/routes/region.js
+++ b/src/libs/routes/region.js
@@ -55,6 +55,9 @@ regionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
 
 const config = require(`${libs}/config`);
 const Agenda = require('agenda');
+const execQuery = require(`${libs}/db/query_exec`);
+const jsonexport = require('jsonexport');
+const fs = require('fs');
 let agenda = new Agenda({
     db: {
         address: config.monq.uri,
@@ -65,7 +68,30 @@ agenda.define('download region', (job, done) => {
     log.debug('POPEPO');
     console.log('POPEPO');
     console.log(job.attrs.data.sql);
-    done();
+    let sql = job.attrs.data.sql;
+    execQuery(sql.text, sql.values).then((result) => {
+        log.debug(result);
+        jsonexport(result, (err, csv) => {
+            if(err) {
+                log.error('Erro na conversão do json pra csv');
+                log.error(err);
+                return done(err);
+            }
+            console.log(csv);
+            fs.writeFile('out.csv', csv, (err) => {
+                if(err) {
+                    log.error('Erro na escrita do arquivo');
+                    log.error(err);
+                    return done(err);
+                }
+                log.info('Criado arquivo');
+                done();
+            })
+        });
+    }, (error) => {
+        log.error('Error!');
+        done(error);
+    });
 });
 
 agenda.on('ready', function() {
-- 
GitLab