38 lines
766 B
JavaScript
38 lines
766 B
JavaScript
|
/* GPS location based on an external database lookup */
|
||
|
|
||
|
/* requires https */
|
||
|
|
||
|
var serviceHost="api.beacondb.net",
|
||
|
servicePath="/v1/geolocate?key=test";
|
||
|
|
||
|
|
||
|
|
||
|
function geolocate (cb) {
|
||
|
var https;
|
||
|
if (typeof require == 'function') try {
|
||
|
https = require('https');
|
||
|
} catch (e) { /* TODO Browser */ }
|
||
|
if (!https) return cb(new Error('ENETWORK'));
|
||
|
var req = https.request({
|
||
|
hostname: serviceHost,
|
||
|
port: 443,
|
||
|
path: servicePath,
|
||
|
method: 'GET'
|
||
|
}, function (res) {
|
||
|
res.on('data', function (d){
|
||
|
try {
|
||
|
var json = JSON.parse(d);
|
||
|
cb(json)
|
||
|
} catch (e) { cb(e) };
|
||
|
});
|
||
|
})
|
||
|
|
||
|
req.on('error', function (e) {
|
||
|
console.error(e);
|
||
|
cb(e);
|
||
|
});
|
||
|
req.end();
|
||
|
}
|
||
|
|
||
|
module.exports = { geolocate : geolocate };
|