aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/nodejs/config.json13
-rw-r--r--src/nodejs/main.js1
-rw-r--r--src/nodejs/response.js4
-rw-r--r--src/nodejs/xmlGenerator.js16
4 files changed, 28 insertions, 6 deletions
diff --git a/src/nodejs/config.json b/src/nodejs/config.json
index 92b4484..2ea4352 100644
--- a/src/nodejs/config.json
+++ b/src/nodejs/config.json
@@ -1,7 +1,12 @@
{
- "connectionString": "pg://user:password@host/database",
- "host": "localhost",
- "port": 8080,
- "logLevel": "ERROR"
+ "connectionString" : "pg://user:password@host/database",
+ "host" : "localhost",
+ "port" : 8080,
+ "logLevel" : "ERROR",
+ "version" : 0.6,
+ "copyright" : "2011 OpenStreetMap contributers",
+ "instance" : "node xapi",
+ "generator" : "xapi: OSM Extended API",
+ "namespace" : "http://localhost/xapi/0.6"
}
diff --git a/src/nodejs/main.js b/src/nodejs/main.js
index e907f03..4411081 100644
--- a/src/nodejs/main.js
+++ b/src/nodejs/main.js
@@ -254,6 +254,7 @@ function getConfig(configPath, callback) {
function init(newConfig) {
config = newConfig;
+ xmlGenerator.config = config;
log.setLevel(config.logLevel);
log.info("server starting...");
log.info("loaded config from " + configPath);
diff --git a/src/nodejs/response.js b/src/nodejs/response.js
index b7fdd85..4be4df0 100644
--- a/src/nodejs/response.js
+++ b/src/nodejs/response.js
@@ -35,7 +35,7 @@ exports.mkXmlRes = function (res){
res.atStart = function (){
if(!this.started){
this.writeHead(200);
- this.write('<xml>');
+ this.write(xmlGen.createHeader());
this.started = true;
}
}
@@ -43,7 +43,7 @@ exports.mkXmlRes = function (res){
if(!this.started){
this.atStart();
}
- this.write('</xml>');
+ this.write('</osm>');
this.end();
}
res.putWay = function (pojo){
diff --git a/src/nodejs/xmlGenerator.js b/src/nodejs/xmlGenerator.js
index 258cb18..a477457 100644
--- a/src/nodejs/xmlGenerator.js
+++ b/src/nodejs/xmlGenerator.js
@@ -1,3 +1,5 @@
+var config;
+
var builder = require('xmlbuilder');
//set up logger
var log4js = require('log4js')(); //note the need to call the function
@@ -48,3 +50,17 @@ exports.createWay = function (row) {
return builder.toString({pretty:'true'});
};
+//header for xml response with information about xapi instance...
+exports.createHeader = function createHeader() {
+ var header = "<?xml version='1.0' standalone='no'?>";
+ var tmp = builder.begin('osm')
+ .att('version',this.config.version)
+ .att('generator',this.config.generator)
+ .att('xmlns:xapi',this.config.namespace)
+ .att('xapi:uri','')
+ .att('xapi:planetDate','')
+ .att('xapi:copyright',this.config.copyright)
+ .att('xapi:instance',this.config.instance);
+ header = header + tmp.toString();
+ return header.substr(0,header.length-2) + " >";
+}