From 603e7709ca2a00792aed252c24ea64216b8b5c55 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Fri, 8 Jul 2016 10:01:46 -0300
Subject: [PATCH] Add XML response

---
 libs/app.js        |  1 +
 libs/routes/api.js | 11 ++++++++---
 package.json       |  3 ++-
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/libs/app.js b/libs/app.js
index 205448c6..bf578043 100644
--- a/libs/app.js
+++ b/libs/app.js
@@ -3,6 +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 methodOverride = require('method-override')
 
 var libs = process.cwd() + '/libs/'
diff --git a/libs/routes/api.js b/libs/routes/api.js
index faafaf21..d5dadcd3 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)
@@ -27,7 +27,7 @@ router.get('/data', function(req, res) {
     })
 })
 
-router.get('/matriculas/:format?', function(req, res) {
+router.get('/matriculas.:format?', function(req, res) {
     log.debug(req.query);
 
     tbl_name = "matriculas";
@@ -49,8 +49,13 @@ router.get('/matriculas/:format?', function(req, res) {
         'SELECT * FROM ' + tbl_name, true
     ).then(function(result) {
         log.debug(result);
-        if (req.params.format) {
+        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({
diff --git a/package.json b/package.json
index f5ff893b..54616e2e 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,8 @@
     "method-override": "^2.3.3",
     "monetdb": "^1.1.2",
     "nconf": "^0.6.x",
-    "winston": "^0.8.x"
+    "winston": "^0.8.x",
+    "xml": "^1.0.1"
   },
   "license": "MIT"
 }
-- 
GitLab