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 };
|