From 0848cfc4b3c703db70d798c8407d7b454ba0b1a9 Mon Sep 17 00:00:00 2001 From: slomo Date: Fri, 21 Jan 2011 16:49:55 +0100 Subject: replaced consol logs with log4js --- src/nodejs/no1.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 4388e73..02a6fb5 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -20,10 +20,10 @@ var connectionString = config['connectionString']; var log4js = require('log4js')(); //note the need to call the function //log4js.addAppender(log4js.fileAppender('osm-xapi.log'), 'cheese'); -var logger = log4js.getLogger('global'); -logger.setLevel('ALL'); +var log.= log4js.getlog.'global'); +log.setLevel('ALL'); -logger.info("server starting..."); +log.info("server starting..."); function toISO8601(date) { //2007-03-31T00:09:22+01:00 @@ -67,14 +67,14 @@ function nodeWorldHandler(req, res, key, value) { } function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { - console.log("nodeBboxHandler"); + log.error("nodeBboxHandler"); db_connect(res, function(client) { - console.log(createNodeBboxQuery(key, value, left, bottom, right, top)); + log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); var success = false; var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); query.on('error', function(err) { - console.log(err); + log.error(err); res.writeHead(404,{}); res.end('\n'); }); @@ -100,7 +100,7 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { res.write(""); } - console.log(row); + log.debug(row); var node = builder.begin('node') .att('id', row.id) @@ -119,7 +119,7 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { } function createXmlFromRow(row) { - console.log(row); + log.debug(row); var node = builder.begin('node') .att('id', row.id) .att('timetamp', toISO8601(row.tstamp)) @@ -142,18 +142,18 @@ function wayWorldHandler(req, res, key, value) { } function connectionError(err, res) { - console.log(err); - console.log("foobar"); + log.error(err); + log.fatal("connectionError not implemented"); } function db_connect(res, callback) { pg.connect(connectionString, function(err, client) { if(err) { - console.log(err['message']); + log.error('message'); res.writeHead(404,{}); res.end(); } else { - console.log("db connection was successfull"); + log.info("db connection was successfull"); callback(client); } }); @@ -167,7 +167,7 @@ function wayBboxHandler(req, res, key, value, left, bottom, right, top) { var query = client.query(createWayBboxQuery(key, value, left, bottom, right, top)); query.on('error', function(err) { - console.log(err); + log.error(err); res.writeHead(404,{}); res.end(); }); @@ -206,7 +206,7 @@ function wayBboxHandler(req, res, key, value, left, bottom, right, top) { res.end(); }); subquery.on('row', function(row) { - console.log(row); + log.debug(row); var node = builder.begin('node') .att('id', row.id) .att('timetamp', toISO8601(row.tstamp)) @@ -274,4 +274,4 @@ myRoutes = clutch.route404([ var http = require('http'); http.createServer(myRoutes).listen(config.port, config.host); -logger.info("Started server at " + config.host + ":" + config.port ); +log.info("Started server at " + config.host + ":" + config.port ); -- cgit v1.2.3 From be4bf1e3bc92921c502508072cd75196238a3fca Mon Sep 17 00:00:00 2001 From: Mark Engel Date: Fri, 21 Jan 2011 17:11:21 +0100 Subject: removed old code --- src/nodejs/no1.js | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 00c7393..c31bc5f 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -99,18 +99,7 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write(""); } - - console.log(row); - - var node = builder.begin('node') - .att('id', row.id) - .att('timetamp', toISO8601(row.tstamp)) - .att('version', row.version) - .att('changeset', row.changeset_id) - .att('lat', row.lat) - .att('lon', row.lon); - - res.write(createXmlFromRow(row)); + res.write(createXmlFromRow(row)); }); }); } @@ -119,7 +108,7 @@ function createXmlFromRow(row) { console.log(row); var node = builder.begin('node') .att('id', row.id) - .att('timetamp', toISO8601(row.tstamp)) + .att('timestamp', toISO8601(row.tstamp)) .att('version', row.version) .att('changeset', row.changeset_id) .att('lat', row.lat) @@ -203,22 +192,7 @@ function wayBboxHandler(req, res, key, value, left, bottom, right, top) { res.end(); }); subquery.on('row', function(row) { - console.log(row); - var node = builder.begin('node') - .att('id', row.id) - .att('timetamp', 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 Date: Fri, 21 Jan 2011 17:14:50 +0100 Subject: fixed confilicts --- src/nodejs/no1.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index d51a19b..64e0593 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -20,7 +20,10 @@ var connectionString = config['connectionString']; var log4js = require('log4js')(); //note the need to call the function //log4js.addAppender(log4js.fileAppender('osm-xapi.log'), 'cheese'); -var log.= log4js.getlog.'global'); +var util = require('util'); + + +var log = log4js.getLogger('global'); log.setLevel('ALL'); log.info("server starting..."); -- cgit v1.2.3 From 9dd34b97d5e1bdcb0f1b08b5590f55c222630c94 Mon Sep 17 00:00:00 2001 From: slomo Date: Fri, 21 Jan 2011 17:19:41 +0100 Subject: removed remainings of old merge --- src/nodejs/no1.js | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 104966f..1c959d0 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -197,26 +197,7 @@ function wayBboxHandler(req, res, key, value, left, bottom, right, top) { res.end(); }); subquery.on('row', function(row) { -<<<<<<< HEAD - log.debug(row); - var node = builder.begin('node') - .att('id', row.id) - .att('timetamp', 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>>>>>> be4bf1e3bc92921c502508072cd75196238a3fca }); //console.log(createNodesForWayQuery(row.nodes)); -- cgit v1.2.3 From 9636bac02a2cf59fa573314a5f15de1d835260a2 Mon Sep 17 00:00:00 2001 From: Mark Engel Date: Fri, 21 Jan 2011 17:20:43 +0100 Subject: refactored creation of xml way to own function --- src/nodejs/no1.js | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index c31bc5f..047b9a2 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -99,12 +99,12 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write(""); } - res.write(createXmlFromRow(row)); + res.write(createXmlNode(row)); }); }); } -function createXmlFromRow(row) { +function createXmlNode(row) { console.log(row); var node = builder.begin('node') .att('id', row.id) @@ -123,6 +123,28 @@ function createXmlFromRow(row) { return builder.toString({ pretty: true }); } +function createXmlWay(row) { + var way = builder.begin('way') + .att('id', row.id) + .att('timestamp', toISO8601(row.tstamp)) + .att('version', row.version) + .att('changeset', row.changeset_id); + if(row.tags != '{}') { + var temp = row.tags.replace("{","").replace("}","").split(","); + for(var x=0;x Date: Fri, 21 Jan 2011 17:26:10 +0100 Subject: replaced tabs with whitespaces --- src/nodejs/no1.js | 190 +++++++++++++++++++++++++++--------------------------- 1 file changed, 95 insertions(+), 95 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 112d736..d63a8bb 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -47,18 +47,18 @@ function toISO8601(date) { pad_two(date.getUTCMinutes()), ':', pad_two(date.getUTCSeconds()), - '+01:00' //FIX ME + '+01:00' //FIX ME ].join(''); } function createWayBboxQuery(key, value, left, bottom, right, top) { return "SELECT id,tstamp,version,changeset_id, nodes, user_id, hstore_to_array(tags) as tags FROM ways WHERE (tags @> hstore('" + key + "','" + value + "') AND linestring && st_setsrid(st_makebox2d(st_setsrid(st_makepoint(" + - left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; + left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; } function createNodeBboxQuery(key, value, left, bottom, right, top) { return "SELECT id, user_id,tstamp,version,changeset_id, hstore_to_array(tags) as tags, X(geom) as lat, Y(geom) as lon FROM nodes WHERE (tags @> hstore('" + key + "','" + value + "') AND geom && st_setsrid(st_makebox2d(st_setsrid(st_makepoint(" + - left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; + left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; } function createNodesForWayQuery(nodes) { @@ -73,38 +73,38 @@ function nodeWorldHandler(req, res, key, value) { function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { log.error("nodeBboxHandler"); db_connect(res, function(client) { - log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); - var success = false; - var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); - - query.on('error', function(err) { - log.error(err); - res.writeHead(404,{}); - res.end('\n'); - }); - - query.on('end', function() { - //console.log("end event\n"); - if(success) { - res.write(""); - res.end(); - } - else { - //empty response - res.writeHead(404,{}); - res.end(); - //perhaps write 404? is error also raised? - } - }); - - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); - } - res.write(createXmlNode(row)); - }); + log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); + var success = false; + var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); + + query.on('error', function(err) { + log.error(err); + res.writeHead(404,{}); + res.end('\n'); + }); + + query.on('end', function() { + //console.log("end event\n"); + if(success) { + res.write(""); + res.end(); + } + else { + //empty response + res.writeHead(404,{}); + res.end(); + //perhaps write 404? is error also raised? + } + }); + + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + res.write(createXmlNode(row)); + }); }); } @@ -138,13 +138,13 @@ function createXmlWay(row) { for(var x=0;x"); - res.end(); - } - //res.write(""); - //res.end(); //problem!!! - } - else { - res.writeHead(404,{}); - res.end(); - //perhaps write 404? - } - }); - - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); - } - //console.log(row); - if(row.nodes != '{}') { - count++; - var subquery = client.query(createNodesForWayQuery(row.nodes)); - subquery.on('error',function(err) {}); - subquery.on('end', function() { - count--; - if(count==0) - res.write(""); - res.end(); - }); - subquery.on('row', function(row) { - res.write(createXmlNode(row)); - }); - - //console.log(createNodesForWayQuery(row.nodes)); - } + var success = false; + //console.log(createWayBboxQuery(key, value, left, bottom, right, top)); + var query = client.query(createWayBboxQuery(key, value, left, bottom, right, top)); + + query.on('error', function(err) { + log.error(err); + res.writeHead(404,{}); + res.end(); + }); + + query.on('end', function() { + if(success) { + if(count == 0) { + res.write(""); + res.end(); + } + //res.write(""); + //res.end(); //problem!!! + } + else { + res.writeHead(404,{}); + res.end(); + //perhaps write 404? + } + }); + + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + //console.log(row); + if(row.nodes != '{}') { + count++; + var subquery = client.query(createNodesForWayQuery(row.nodes)); + subquery.on('error',function(err) {}); + subquery.on('end', function() { + count--; + if(count==0) + res.write(""); + res.end(); + }); + subquery.on('row', function(row) { + res.write(createXmlNode(row)); + }); + + //console.log(createNodesForWayQuery(row.nodes)); + } res.write(createXmlWay(row)); - }); + }); }); } -- cgit v1.2.3 From eee248c50cf60c1c24b090d5c58fba6bd9711d20 Mon Sep 17 00:00:00 2001 From: Mark Engel Date: Fri, 21 Jan 2011 17:45:16 +0100 Subject: creation of xml data is now handled by xmlGenerator --- src/nodejs/no1.js | 134 ++++++++++++++---------------------------------------- 1 file changed, 34 insertions(+), 100 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index d63a8bb..9258e15 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -1,6 +1,6 @@ var clutch = require('clutch'); var pg = require('pg'); -var builder = require('xmlbuilder'); +var xmlGenerator = require('./xmlGenerator.js'); // load config var config = require('./config.json'); @@ -20,37 +20,11 @@ var connectionString = config['connectionString']; var log4js = require('log4js')(); //note the need to call the function //log4js.addAppender(log4js.fileAppender('osm-xapi.log'), 'cheese'); -var logger = log4js.getLogger('global'); -logger.setLevel('ALL'); - - var log = log4js.getLogger('global'); log.setLevel('ALL'); log.info("server starting..."); -function toISO8601(date) { - //2007-03-31T00:09:22+01:00 - var pad_two = function(n) { - return (n < 10 ? '0' : '') + n; - }; - - 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(''); -} - function createWayBboxQuery(key, value, left, bottom, right, top) { return "SELECT id,tstamp,version,changeset_id, nodes, user_id, hstore_to_array(tags) as tags FROM ways WHERE (tags @> hstore('" + key + "','" + value + "') AND linestring && st_setsrid(st_makebox2d(st_setsrid(st_makepoint(" + left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; @@ -97,58 +71,17 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { } }); - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); - } - res.write(createXmlNode(row)); + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + res.write(xmlGenerator.createNode(row)); + }); }); }); } - -function createXmlNode(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"); - } - //console.log(row); - if(row.nodes != '{}') { - count++; - var subquery = client.query(createNodesForWayQuery(row.nodes)); - subquery.on('error',function(err) {}); - subquery.on('end', function() { - count--; - if(count==0) - res.write(""); - res.end(); - }); - subquery.on('row', function(row) { - res.write(createXmlNode(row)); - }); - - //console.log(createNodesForWayQuery(row.nodes)); - } - res.write(createXmlWay(row)); + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + //console.log(row); + if(row.nodes != '{}') { + count++; + var subquery = client.query(createNodesForWayQuery(row.nodes)); + subquery.on('error',function(err) {}); + subquery.on('end', function() { + count--; + if(count==0) + res.write(""); + res.end(); + }); + subquery.on('row', function(row) { + res.write(xmlGenerator.createNode(row)); + }); + + //console.log(createNodesForWayQuery(row.nodes)); + } + res.write(xmlGenerator.createWay(row)); + }); }); }); } -- cgit v1.2.3 From 8c8e209fc347623464e1ddc6051abaf84cb77912 Mon Sep 17 00:00:00 2001 From: Mark Engel Date: Fri, 21 Jan 2011 17:49:43 +0100 Subject: error while merging --- src/nodejs/no1.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 9258e15..66c16c5 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -47,8 +47,8 @@ function nodeWorldHandler(req, res, key, value) { function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { log.error("nodeBboxHandler"); db_connect(res, function(client) { - log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); - var success = false; + log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); + var success = false; var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); query.on('error', function(err) { @@ -71,17 +71,17 @@ function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { } }); - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); } res.write(xmlGenerator.createNode(row)); - }); - }); }); +}); } + function wayWorldHandler(req, res, key, value) { res.writeHead(200, {'Content-Type': 'text/plain'}); } @@ -157,7 +157,6 @@ function wayBboxHandler(req, res, key, value, left, bottom, right, top) { //console.log(createNodesForWayQuery(row.nodes)); } res.write(xmlGenerator.createWay(row)); - }); }); }); } -- cgit v1.2.3 From dda92dc140c951b7511937e5927e783f47b347cf Mon Sep 17 00:00:00 2001 From: Mark Engel Date: Fri, 21 Jan 2011 18:11:31 +0100 Subject: using indent for javascript from http://www.vim.org/scripts/script.php?script_id=1491 --- src/nodejs/no1.js | 225 +++++++++++++++++++++++++++--------------------------- 1 file changed, 112 insertions(+), 113 deletions(-) (limited to 'src/nodejs/no1.js') diff --git a/src/nodejs/no1.js b/src/nodejs/no1.js index 66c16c5..e9e57ad 100644 --- a/src/nodejs/no1.js +++ b/src/nodejs/no1.js @@ -4,16 +4,15 @@ var xmlGenerator = require('./xmlGenerator.js'); // load config var config = require('./config.json'); -process.argv.forEach( - function (val,index, array){ +process.argv.forEach(function (val,index, array){ if(val=="-c"){ - path = array[index+1]; - if( path[0] != '/'){ - path = __dirname + '/' + path; - } - config = require(path); + path = array[index+1]; + if( path[0] != '/'){ + path = __dirname + '/' + path; } - }); + config = require(path); + } + }); var connectionString = config['connectionString']; //set up logger @@ -27,12 +26,12 @@ log.info("server starting..."); function createWayBboxQuery(key, value, left, bottom, right, top) { return "SELECT id,tstamp,version,changeset_id, nodes, user_id, hstore_to_array(tags) as tags FROM ways WHERE (tags @> hstore('" + key + "','" + value + "') AND linestring && st_setsrid(st_makebox2d(st_setsrid(st_makepoint(" + - left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; + left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; } function createNodeBboxQuery(key, value, left, bottom, right, top) { return "SELECT id, user_id,tstamp,version,changeset_id, hstore_to_array(tags) as tags, X(geom) as lat, Y(geom) as lon FROM nodes WHERE (tags @> hstore('" + key + "','" + value + "') AND geom && st_setsrid(st_makebox2d(st_setsrid(st_makepoint(" + - left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; + left + "," + bottom + "),4326), st_setsrid(st_makepoint(" + right + "," + top + "),4326)),4326));"; } function createNodesForWayQuery(nodes) { @@ -47,39 +46,39 @@ function nodeWorldHandler(req, res, key, value) { function nodeBboxHandler(req, res, key, value, left, bottom, right, top) { log.error("nodeBboxHandler"); db_connect(res, function(client) { - log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); - var success = false; - var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); - - query.on('error', function(err) { - log.error(err); - res.writeHead(404,{}); - res.end('\n'); + log.info(createNodeBboxQuery(key, value, left, bottom, right, top)); + var success = false; + var query = client.query(createNodeBboxQuery(key, value, left, bottom, right, top)); + + query.on('error', function(err) { + log.error(err); + res.writeHead(404,{}); + res.end('\n'); + }); + + query.on('end', function() { + //console.log("end event\n"); + if(success) { + res.write(""); + res.end(); + } + else { + //empty response + res.writeHead(404,{}); + res.end(); + //perhaps write 404? is error also raised? + } + }); + + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + res.write(xmlGenerator.createNode(row)); + }); }); - - query.on('end', function() { - //console.log("end event\n"); - if(success) { - res.write(""); - res.end(); - } - else { - //empty response - res.writeHead(404,{}); - res.end(); - //perhaps write 404? is error also raised? - } - }); - - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); - } - res.write(xmlGenerator.createNode(row)); - }); -}); } function wayWorldHandler(req, res, key, value) { @@ -93,71 +92,71 @@ function connectionError(err, res) { function db_connect(res, callback) { pg.connect(connectionString, function(err, client) { - if(err) { - log.error('message'); - res.writeHead(404,{}); - res.end(); - } else { - log.info("db connection was successfull"); - callback(client); - } - }); + if(err) { + log.error('message'); + res.writeHead(404,{}); + res.end(); + } else { + log.info("db connection was successfull"); + callback(client); + } + }); } function wayBboxHandler(req, res, key, value, left, bottom, right, top) { db_connect(res, function(client) { - var count = 0; - var success = false; - //console.log(createWayBboxQuery(key, value, left, bottom, right, top)); - var query = client.query(createWayBboxQuery(key, value, left, bottom, right, top)); - - query.on('error', function(err) { - log.error(err); - res.writeHead(404,{}); - res.end(); - }); - - query.on('end', function() { - if(success) { - if(count == 0) { - res.write(""); - res.end(); - } - //res.write(""); - //res.end(); //problem!!! - } - else { - res.writeHead(404,{}); - res.end(); - //perhaps write 404? - } - }); - - query.on('row', function(row) { - if(!success) { - success = true; - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.write(""); - } - //console.log(row); - if(row.nodes != '{}') { - count++; - var subquery = client.query(createNodesForWayQuery(row.nodes)); - subquery.on('error',function(err) {}); - subquery.on('end', function() { - count--; - if(count==0) - res.write(""); - res.end(); - }); - subquery.on('row', function(row) { - res.write(xmlGenerator.createNode(row)); - }); - - //console.log(createNodesForWayQuery(row.nodes)); - } - res.write(xmlGenerator.createWay(row)); - }); + var count = 0; + var success = false; + //console.log(createWayBboxQuery(key, value, left, bottom, right, top)); + var query = client.query(createWayBboxQuery(key, value, left, bottom, right, top)); + + query.on('error', function(err) { + log.error(err); + res.writeHead(404,{}); + res.end(); + }); + + query.on('end', function() { + if(success) { + if(count == 0) { + res.write(""); + res.end(); + } + //res.write(""); + //res.end(); //problem!!! + } + else { + res.writeHead(404,{}); + res.end(); + //perhaps write 404? + } + }); + + query.on('row', function(row) { + if(!success) { + success = true; + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write(""); + } + //console.log(row); + if(row.nodes != '{}') { + count++; + var subquery = client.query(createNodesForWayQuery(row.nodes)); + subquery.on('error',function(err) {}); + subquery.on('end', function() { + count--; + if(count==0) + res.write(""); + res.end(); + }); + subquery.on('row', function(row) { + res.write(xmlGenerator.createNode(row)); + }); + + //console.log(createNodesForWayQuery(row.nodes)); + } + res.write(xmlGenerator.createWay(row)); + }); }); } @@ -171,16 +170,16 @@ function relationBboxHandler(req, res, key, value, left, bottom, right, top) { } myRoutes = clutch.route404([ - //['GET /api/(\\w+)(\\[bbox=(\\d,\\d,\\d,\\d)\\])*\\[(\\w+)=(\\w+)\\]$', helloSomeone], - ['GET /api/node\\[(\\w+)=(\\w+)\\]$',nodeWorldHandler], - //['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(\\.\\d+)?),(\\d+),(\\d+),(\\d+)\\]$',nodeBboxHandler], - ['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)\\]$',nodeBboxHandler], - //['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+\\.\\d+),(\\d+),(\\d+),(\\d+)\\]$',nodeBboxHandler], - ['GET /api/way\\[(\\w+)=(\\w+)\\]$',wayWorldHandler], - ['GET /api/way\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)\\]$',wayBboxHandler], - ['GET /api/relation\\[(\\w+)=(\\w+)\\]$',relationWorldHandler], - //['GET /api/relation\\[(\\w+)=(\\w+)\\](\\[bbox=(\\d),(\\d),(\\d),(\\d)\\])$',relationBboxHandler], -]); + //['GET /api/(\\w+)(\\[bbox=(\\d,\\d,\\d,\\d)\\])*\\[(\\w+)=(\\w+)\\]$', helloSomeone], + ['GET /api/node\\[(\\w+)=(\\w+)\\]$',nodeWorldHandler], + //['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(\\.\\d+)?),(\\d+),(\\d+),(\\d+)\\]$',nodeBboxHandler], + ['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)\\]$',nodeBboxHandler], + //['GET /api/node\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+\\.\\d+),(\\d+),(\\d+),(\\d+)\\]$',nodeBboxHandler], + ['GET /api/way\\[(\\w+)=(\\w+)\\]$',wayWorldHandler], + ['GET /api/way\\[(\\w+)=(\\w+)\\]\\[bbox=(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)\\]$',wayBboxHandler], + ['GET /api/relation\\[(\\w+)=(\\w+)\\]$',relationWorldHandler], + //['GET /api/relation\\[(\\w+)=(\\w+)\\](\\[bbox=(\\d),(\\d),(\\d),(\\d)\\])$',relationBboxHandler], + ]); var http = require('http'); -- cgit v1.2.3