From 1a37a20fd94a60ce686a6f1e11534b504b2e2308 Mon Sep 17 00:00:00 2001 From: slomo Date: Sat, 22 Jan 2011 13:31:32 +0100 Subject: the xml output works now --- src/nodejs/main.js | 28 ++++++++++++++++++++++-- src/nodejs/response.js | 37 +++++++++++++++++++++++++++++++- src/nodejs/xmlGenerator.js | 53 ++++++++++++++-------------------------------- 3 files changed, 78 insertions(+), 40 deletions(-) diff --git a/src/nodejs/main.js b/src/nodejs/main.js index 1928f28..2c4cb26 100644 --- a/src/nodejs/main.js +++ b/src/nodejs/main.js @@ -43,11 +43,24 @@ function rowToNode(row){ 'version': row.version, 'changeset': row.changeset_id, 'lat' : row.lat, - 'lon' : row.lon - } + 'lon' : row.lon, + }; + + if(row.tags != '{}') { + node.tags = []; + // FIXME: something doesnt work at all + temp = row.tags.replace("{","").replace("}","").split(","); + for(var x=0;x'); + this.started = true; + } + } + res.atEnd = function(){ + if(!this.started){ + this.atStart(pojo); + } + this.write(''); + this.end(); + } + res.putWay = function (pojo){ + if(!this.started){ + this.atStart(pojo); + } + this.write(xmlGen.createWay(pojo)); + } + + res.putNode = function (pojo){ + if(!this.started){ + this.atStart(pojo); + } + this.write(xmlGen.createNode(pojo)); + } + + res.endWith500 = function(){ + this.writeHead(500); + this.end(); + } + return res; } diff --git a/src/nodejs/xmlGenerator.js b/src/nodejs/xmlGenerator.js index 08ea833..921056d 100644 --- a/src/nodejs/xmlGenerator.js +++ b/src/nodejs/xmlGenerator.js @@ -8,50 +8,29 @@ var log4js = require('log4js')(); //note the need to call the function var log = log4js.getLogger('xmlGenerator'); log.setLevel(config.logLevel); -function toISO8601(date) { - //2007-03-31T00:09:22+01:00 - var pad_two = function(n) { - return (n < 10 ? '0' : '') + n; - }; +exports.createNode = function (node) { + log.debug(node); + var xmlNode = builder.begin('node') + .att('id', node.id) + .att('timestamp', node.timestamp) + .att('version', node.version) + .att('changeset', node.changeset) + .att('lat', node.lat) + .att('lon', node.lon); - return [ - date.getUTCFullYear(), - '-', - pad_two(date.getUTCMonth() + 1), - '-', - pad_two(date.getUTCDate()), - 'T', - pad_two(date.getUTCHours()), - ':', - pad_two(date.getUTCMinutes()), - ':', - pad_two(date.getUTCSeconds()), - '+01:00' //FIX ME - ].join(''); -} - -exports.createNode = function (row) { - log.debug(row); - var node = builder.begin('node') - .att('id', row.id) - .att('timestamp', toISO8601(row.tstamp)) - .att('version', row.version) - .att('changeset', row.changeset_id) - .att('lat', row.lat) - .att('lon', row.lon); - if(row.tags != '{}') { - var temp = row.tags.replace("{","").replace("}","").split(","); - for(var x=0;x