diff --git a/libs/app.js b/libs/app.js index 5d6a1539e3a40f7ef5d5b02ee3aa9eb772af4a29..8797bdf363c47245e530affb00324ec4922a5cb3 100644 --- a/libs/app.js +++ b/libs/app.js @@ -3,7 +3,7 @@ var path = require('path') var cookieParser = require('cookie-parser') var bodyParser = require('body-parser') var csv = require('csv-express') -var xml = require('xml') +var xml = require('js2xmlparser') var methodOverride = require('method-override') var cors = require('cors') diff --git a/libs/routes/api.js b/libs/routes/api.js index 3d72a1eb9597eb77aa95702d6d4a697feb9a1d3c..ecfcc7083b26366b2c95a94448545f65f83b2910 100644 --- a/libs/routes/api.js +++ b/libs/routes/api.js @@ -1,5 +1,5 @@ var express = require('express') -var xml = require('xml') +var xml = require('js2xmlparser') var router = express.Router() var libs = process.cwd() + '/libs/' @@ -42,7 +42,7 @@ router.get('/data', function(req, res) { }) }) -router.get('/enrollments.:format?', function(req, res) { +router.get('/enrollments', function(req, res) { var params = req.query; var id = 0; var location_id = 0; @@ -121,9 +121,9 @@ router.get('/enrollments.:format?', function(req, res) { conn.query(enrollmentSql, true).then(function(result) { log.debug(result); - if (req.params.format === 'csv') { + if (req.query.format === 'csv') { res.csv(result.data) - } else if (req.params.format === 'xml') { + } else if (req.query.format === 'xml') { res.set('Content-Type', 'text/xml') res.send(xml({ result: result.data diff --git a/libs/routes/cities.js b/libs/routes/cities.js index e13f887b295e2e2860e8b43d8b904a0280856bf1..6a2220497fa90a47200fce15b0879c8cd5ed90c8 100644 --- a/libs/routes/cities.js +++ b/libs/routes/cities.js @@ -1,5 +1,5 @@ var express = require('express') -var xml = require('xml') +var xml = require('js2xmlparser') var router = express.Router() var libs = process.cwd() + '/libs/' @@ -9,24 +9,26 @@ var config = require(libs + 'config') var conn = require(libs + 'db/monet') +function response(req, res) { + if (req.query.format === 'csv') { + res.csv(req.result.data) + } else if (req.query.format === 'xml') { + res.send(xml("result", JSON.stringify({city: req.result.data}))) + } + else { + res.json({ + result: req.result.data + }) + } +} + router.get('/', function(req, res) { conn.query( 'SELECT * FROM municipios', true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) @@ -36,19 +38,8 @@ router.get('/:id', function(req, res) { 'SELECT * FROM municipios WHERE pk_municipio_id='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) @@ -57,19 +48,8 @@ router.get('/ibge/:id', function(req, res) { 'SELECT * FROM municipios WHERE codigo_ibge='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) @@ -78,19 +58,8 @@ router.get('/state/:id', function(req, res) { 'SELECT * FROM municipios WHERE fk_estado_id='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) diff --git a/libs/routes/regions.js b/libs/routes/regions.js index 360f9edfefe39681ca8f82fec3cc3dce1fe782e8..6c85fccb8a8b856769ccb46ca9fb821c81bab460 100644 --- a/libs/routes/regions.js +++ b/libs/routes/regions.js @@ -1,5 +1,5 @@ var express = require('express') -var xml = require('xml') +var xml = require('js2xmlparser') var router = express.Router() var libs = process.cwd() + '/libs/' @@ -9,25 +9,27 @@ var config = require(libs + 'config') var conn = require(libs + 'db/monet') +function response(req, res) { + if (req.query.format === 'csv') { + res.csv(req.result.data) + } else if (req.query.format === 'xml') { + res.send(xml("result", JSON.stringify({state: req.result.data}))) + } + else { + res.json({ + result: req.result.data + }) + } +} + router.get('/', function(req, res) { conn.query( 'SELECT * FROM regioes', true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) - }) router.get('/:id', function(req, res) { @@ -35,19 +37,8 @@ router.get('/:id', function(req, res) { 'SELECT * FROM regioes WHERE pk_regiao_id='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) diff --git a/libs/routes/states.js b/libs/routes/states.js index 0f26ef60de18e857c98339300e005d1b880c84ae..2192c5377a0e705ad59393dacf46a469491b7ad7 100644 --- a/libs/routes/states.js +++ b/libs/routes/states.js @@ -1,5 +1,5 @@ var express = require('express') -var xml = require('xml') +var xml = require('js2xmlparser') var router = express.Router() var libs = process.cwd() + '/libs/' @@ -9,67 +9,46 @@ var config = require(libs + 'config') var conn = require(libs + 'db/monet') -router.get('/', function(req, res) { +function response(req, res) { + if (req.query.format === 'csv') { + res.csv(req.result.data) + } else if (req.query.format === 'xml') { + res.send(xml("result", JSON.stringify({state: req.result.data}))) + } + else { + res.json({ + result: req.result.data + }) + } +} + +router.get('/', function(req, res, next) { conn.query( 'SELECT * FROM estados', true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) - }) -router.get('/:id', function(req, res) { +router.get('/:id', function(req, res, next) { conn.query( 'SELECT * FROM estados WHERE pk_estado_id='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) -router.get('/region/:id', function(req, res) { +router.get('/region/:id', function(req, res, next) { conn.query( 'SELECT * FROM estados WHERE fk_regiao_id='+req.params.id, true ).then(function(result) { log.debug(result) - if (req.query.format === 'csv') { - res.csv(result.data) - } else if (req.query.format === 'xml') { - res.set('Content-Type', 'text/xml') - res.send(xml({ - result: result.data - })) - } - else { - res.json({ - result: result.data - }) - } + req.result = result + response(req, res) }) }) diff --git a/package.json b/package.json index 935408c070c7007d2d00a5a4694571a67b41c0f1..d8b84a4f6579eb1adb4163d48b4f746078550cdf 100644 --- a/package.json +++ b/package.json @@ -16,11 +16,11 @@ "debug": "~2.0.x", "express": "^4.13.0", "faker": "^2.1.5", + "js2xmlparser": "^1.0.0", "method-override": "^2.3.3", "monetdb": "^1.1.2", "nconf": "^0.6.x", - "winston": "^2.2.0", - "xml": "^1.0.1" + "winston": "^2.2.0" }, "license": "MIT" }