UNPKG

dotup-node-geocoder

Version:

Node Geocoder, node geocoding library, supports google maps, mapquest, open street map, tom tom, promise

59 lines (51 loc) 1.4 kB
'use strict'; var HttpError = require('../error/httperror.js'); var request = require('request-promise'); /** * RequestAdapter * @param <object> http an optional http instance to use * @param <object> options additional options to set on the request */ var RequestAdapter = function(request, options) { this.options = options; }; RequestAdapter.prototype.supportsHttps = function() { return true; }; /** * get * @param <string> uri Webservice url * @param <array> params array of query string parameters * @param <function> callback Callback method */ RequestAdapter.prototype.get = function(url, params, callback) { var options = { uri: url, qs: params, headers: { 'user-agent': 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0' }, resolveWithFullResponse: true, json: true }; if (this.options) { for (var k in this.options) { var v = this.options[k]; if (!v) { continue; } options[k] = v; } } return request(options).then(function handleResponse(response) { return response.body; }) .catch(function(error) { var _error = error.cause ? error.cause : error; throw new HttpError(_error.message, { code: _error.code }); }) .asCallback(callback); }; module.exports = RequestAdapter;