aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodejs/start.js
diff options
context:
space:
mode:
authorMark Engel <mark.c.engel@gmail.com>2011-01-21 15:26:47 +0100
committerMark Engel <mark.c.engel@gmail.com>2011-01-21 15:26:47 +0100
commitef31bee06ce4517e83de01f9f13f6c96a77a0b5f (patch)
treee05d91688134e6363d983c67ee43fe28e86ead01 /src/nodejs/start.js
parent6ed48d9e3c9ee669d25323fb547acaeff2194437 (diff)
parent3278c8de34e026421a7908dbdc5c96f8226bc0ca (diff)
downloadosm-xapi-ef31bee06ce4517e83de01f9f13f6c96a77a0b5f.tar.gz
osm-xapi-ef31bee06ce4517e83de01f9f13f6c96a77a0b5f.tar.xz
osm-xapi-ef31bee06ce4517e83de01f9f13f6c96a77a0b5f.zip
Merge branch 'master' of github.com:slomo/osm-spline-xapi
Diffstat (limited to 'src/nodejs/start.js')
-rw-r--r--src/nodejs/start.js105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/nodejs/start.js b/src/nodejs/start.js
deleted file mode 100644
index b92c757..0000000
--- a/src/nodejs/start.js
+++ /dev/null
@@ -1,105 +0,0 @@
-// imports
-var http = require('http'),
- querystring = require('querystring'),
- pg = require('pg'),
- url = require('url'),
- querystring = require('querystring');
-
-// config
-var connectionString = "pg://yves:test@localhost/xapi"
-
-
-function getDataBaseResult(tag,bbox,res){
-pg.connect(connectionString,function(err,client){
- var the_result;
- if(err){
- console.log(err);
- } else {
- client.query(createQuery(tag,bbox),function(err,result){
- if (err) {
- console.log(err);
- } else {
- console.log(result);
- res.write(result.rows);
- res.end("/n");
- }
-
- });
- }
-});
-}
-
-
-function createQuery(tag,bbox){
- // FIXME: validate
- var table = tag[0] + "#" + tag[1];
- var filter = "";
-
- // input validation
- for(i=0;i<bbox.length;i++){
- bbox[i] = parseFloat(bbox[i]);
- }
-
- if(bbox){
- filter = "WHERE longitude > " + bbox[0] + " AND longitude < " + bbox[1] +
- " AND latitude > " + bbox[2] + " AND latitude < " + bbox[3];
- }
- return "SELECT * FROM \"" + table + "\" " + filter + ";";
-}
-
-
-RegExp.escape= function(s) {
- return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&')
-};
-
-
-var PATH_PREFIX = '/api/';
-var base_url_re = new RegExp('^' + RegExp.escape(PATH_PREFIX) +
- '(node|way|relation|\\*)(.*)$')
-var filter_re = /\[(\w+=[^\]]+)\]/g;
-
-
-http.createServer(function (req, res) {
-
- if (!base_url_re.test(req.url)) {
- res.writeHead(404, {'Content-Type': 'text/plain; charset=utf8'});
- res.end('Not Found\n');
- }
- base_url_re.exec(req.url);
- var type = RegExp.$1, url_rest = querystring.unescape(RegExp.$2);
-
- var filters = [];
- while (v = filter_re.exec(url_rest)) {
- filters.push(v[1]);
- }
- console.log(filters);
-
- var tag;
- var bbox;
-
- for(i=0;i<filters.length;i++){
- filters[i]=filters[i].split(/=/);
- if(filters[i][0]=="bbox"){
- bbox = filters[i][1].split(/,/);
- }
- else {
- tag = filters[i];
- }
- }
-
- console.log(tag);
- console.log(bbox);
-
- getDataBaseResult(tag,bbox,res);
-
- res.writeHead(200, {'Content-Type': 'text/plain; charset=utf8', });
-
- res.write('URL was: ' + req.url + '\n');
- res.write('type: ' + type + '\n');
- res.write('filters:\n');
- filters.forEach(function(x) { res.write(' ' + x + '\n'); })
- //res.end('\n');
-
-}).listen(8124, "127.0.0.1");
-
-console.log('Listening on http://127.0.0.1:8124/')