mirror of https://github.com/pelias/api.git
Harish Krishna
10 years ago
9 changed files with 83 additions and 193 deletions
@ -1,50 +0,0 @@ |
|||||||
|
|
||||||
/** |
|
||||||
README: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-suggest
|
|
||||||
**/ |
|
||||||
|
|
||||||
var geojsonify = require('../helper/geojsonify').suggest; |
|
||||||
|
|
||||||
function setup( backend, query ){ |
|
||||||
|
|
||||||
// allow overriding of dependencies
|
|
||||||
backend = backend || require('../src/backend'); |
|
||||||
query = query || require('../query/suggest_admin'); |
|
||||||
|
|
||||||
function controller( req, res, next ){ |
|
||||||
|
|
||||||
// backend command
|
|
||||||
var cmd = { |
|
||||||
index: 'pelias', |
|
||||||
body: query( req.clean ) |
|
||||||
}; |
|
||||||
|
|
||||||
// query backend
|
|
||||||
backend().client.suggest( cmd, function( err, data ){ |
|
||||||
|
|
||||||
var docs = []; |
|
||||||
|
|
||||||
// handle backend errors
|
|
||||||
if( err ){ return next( err ); } |
|
||||||
|
|
||||||
// map response to a valid FeatureCollection
|
|
||||||
if( data && Array.isArray( data.pelias ) && data.pelias.length ){ |
|
||||||
docs = data['pelias'][0].options || []; |
|
||||||
} |
|
||||||
|
|
||||||
// convert docs to geojson
|
|
||||||
var geojson = geojsonify( docs ); |
|
||||||
|
|
||||||
// response envelope
|
|
||||||
geojson.date = new Date().getTime(); |
|
||||||
|
|
||||||
// respond
|
|
||||||
return res.status(200).json( geojson ); |
|
||||||
}); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
return controller; |
|
||||||
} |
|
||||||
|
|
||||||
module.exports = setup; |
|
@ -1,46 +0,0 @@ |
|||||||
|
|
||||||
var geojsonify = require('../helper/geojsonify').suggest; |
|
||||||
|
|
||||||
function setup( backend, query ){ |
|
||||||
|
|
||||||
// allow overriding of dependencies
|
|
||||||
backend = backend || require('../src/backend'); |
|
||||||
query = query || require('../query/suggest_poi'); |
|
||||||
|
|
||||||
function controller( req, res, next ){ |
|
||||||
|
|
||||||
// backend command
|
|
||||||
var cmd = { |
|
||||||
index: 'pelias', |
|
||||||
body: query( req.clean ) |
|
||||||
}; |
|
||||||
|
|
||||||
// query backend
|
|
||||||
backend().client.suggest( cmd, function( err, data ){ |
|
||||||
|
|
||||||
var docs = []; |
|
||||||
|
|
||||||
// handle backend errors
|
|
||||||
if( err ){ return next( err ); } |
|
||||||
|
|
||||||
// map response to a valid FeatureCollection
|
|
||||||
if( data && Array.isArray( data.pelias ) && data.pelias.length ){ |
|
||||||
docs = data['pelias'][0].options || []; |
|
||||||
} |
|
||||||
|
|
||||||
// convert docs to geojson
|
|
||||||
var geojson = geojsonify( docs ); |
|
||||||
|
|
||||||
// response envelope
|
|
||||||
geojson.date = new Date().getTime(); |
|
||||||
|
|
||||||
// respond
|
|
||||||
return res.status(200).json( geojson ); |
|
||||||
}); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
return controller; |
|
||||||
} |
|
||||||
|
|
||||||
module.exports = setup; |
|
@ -1,29 +0,0 @@ |
|||||||
|
|
||||||
var logger = require('../src/logger'); |
|
||||||
|
|
||||||
// Build pelias suggest query
|
|
||||||
function generate( params, precision ){ |
|
||||||
|
|
||||||
var cmd = { |
|
||||||
'pelias' : { |
|
||||||
'text' : params.input, |
|
||||||
'completion' : { |
|
||||||
'size' : params.size, |
|
||||||
'field' : 'suggest', |
|
||||||
'context': { |
|
||||||
'dataset': ['admin0','admin1','admin2'], |
|
||||||
'location': { |
|
||||||
'value': [ params.lon, params.lat ], |
|
||||||
'precision': precision || 1 |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
// logger.log( 'cmd', JSON.stringify( cmd, null, 2 ) );
|
|
||||||
return cmd; |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
module.exports = generate; |
|
Loading…
Reference in new issue