diff --git a/libs/app.js b/libs/app.js index a20fb2e1f2466866e53d952c7ccb01d8a512cdf8..79e6db8b244493c5e91d9e3d8c72a856fd676eb8 100644 --- a/libs/app.js +++ b/libs/app.js @@ -2,6 +2,8 @@ var express = require('express') var path = require('path') var cookieParser = require('cookie-parser') var bodyParser = require('body-parser') +var csv = require('csv-express') +var xml = require('xml') var methodOverride = require('method-override') var cors = require('cors') diff --git a/libs/routes/api.js b/libs/routes/api.js index 0bde814c2ba0295079f3b046656839230beb3650..d5dadcd3d622a4c4574f1286c5f89f9bf4f1dc42 100644 --- a/libs/routes/api.js +++ b/libs/routes/api.js @@ -1,6 +1,6 @@ var express = require('express') var router = express.Router() - +var xml = require('xml') var libs = process.cwd() + '/libs/' var log = require(libs + 'log')(module) @@ -15,9 +15,9 @@ router.get('/', function (req, res) { }) router.get('/data', function(req, res) { - console.log(req.query) - console.log(req.query.met) - console.log(req.query.dim) + log.debug(req.query) + log.debug(req.query.met) + log.debug(req.query.dim) conn.query( 'SELECT * FROM turmas' ).then(function(result) { @@ -27,8 +27,8 @@ router.get('/data', function(req, res) { }) }) -router.get('/matriculas', function(req, res) { - console.log(req.query); +router.get('/matriculas.:format?', function(req, res) { + log.debug(req.query); tbl_name = "matriculas"; switch(req.query.agregar) @@ -41,17 +41,27 @@ router.get('/matriculas', function(req, res) { break; } - console.log("Querying table '" + tbl_name + "'"); + log.info("Querying table '" + tbl_name + "'"); /* FIXME: Replace parameter substitution - Might not be needed since the parameter tbl_name is not supplied by the user */ conn.query( 'SELECT * FROM ' + tbl_name, true ).then(function(result) { - console.log(result); - res.json({ - result: result.data - }) + log.debug(result); + if (req.params.format === 'csv') { + res.csv(result.data) + } else if (req.params.format === 'xml') { + res.set('Content-Type', 'text/xml') + res.send(xml({ + 'result': result.data + })) + } + else { + res.json({ + result: result.data + }) + } }); }) diff --git a/package.json b/package.json index 9c27762ba64b17067b909963bc8436d948a184a1..935408c070c7007d2d00a5a4694571a67b41c0f1 100644 --- a/package.json +++ b/package.json @@ -12,13 +12,15 @@ "body-parser": "^1.13.1", "cookie-parser": "^1.3.5", "cors": "^2.7.1", + "csv-express": "^1.1.0", "debug": "~2.0.x", "express": "^4.13.0", "faker": "^2.1.5", "method-override": "^2.3.3", "monetdb": "^1.1.2", "nconf": "^0.6.x", - "winston": "^2.2.0" + "winston": "^2.2.0", + "xml": "^1.0.1" }, "license": "MIT" }