1 |
|
2 | 'use strict';
|
3 |
|
4 | var Promise = require("promise");
|
5 | var request = require("request");
|
6 | var _ = require('underscore');
|
7 |
|
8 | var helper = function(obj) {
|
9 | if (obj instanceof _) return obj;
|
10 | if (!(this instanceof _)) return new _(obj);
|
11 | this._wrapped = obj;
|
12 | };
|
13 |
|
14 | helper.get = function (tokenData, url, callback) {
|
15 | var tokenStr = "Token ";
|
16 |
|
17 | if (tokenData.type == "bearer") {
|
18 | tokenStr = "Bearer ";
|
19 | }
|
20 |
|
21 | var opts = {
|
22 | url: url,
|
23 | headers: {
|
24 | "Authorization": tokenStr + tokenData.token
|
25 | }
|
26 | };
|
27 |
|
28 | return new Promise(function(fulfill, reject){
|
29 | request.get(opts, function(error, body, response) {
|
30 | if (error) {
|
31 | reject(JSON.parse(error));
|
32 | if (typeof callback !== 'undefined')
|
33 | callback(JSON.parse(error), null);
|
34 | } else {
|
35 | if (body.statusCode != 200) {
|
36 | reject(JSON.parse(response));
|
37 | if (typeof callback !== 'undefined')
|
38 | callback(JSON.parse(response), null);
|
39 | } else {
|
40 | var res = JSON.parse(response);
|
41 |
|
42 |
|
43 | var rateLimit = body.headers["x-rate-limit-limit"];
|
44 | var rateRemaining = body.headers["x-rate-limit-remaining"];
|
45 | var rateReset = body.headers["x-rate-limit-reset"];
|
46 | if(typeof rateLimit !== 'undefined' &&
|
47 | typeof rateRemaining !== 'undefined' &&
|
48 | typeof rateReset !== 'undefined'){
|
49 |
|
50 | res.rate_limit = {
|
51 | "limit" : rateLimit,
|
52 | "remaining" : rateRemaining,
|
53 | "reset" : new Date(rateReset * 1000)
|
54 | };
|
55 | }
|
56 |
|
57 | fulfill(res);
|
58 | if (typeof callback !== 'undefined')
|
59 | callback(null, res);
|
60 | }
|
61 | }
|
62 | });
|
63 | });
|
64 | };
|
65 |
|
66 | helper.checkLocationParams = function(params){
|
67 | if(_.isUndefined(params) || _.isNull(params)) {
|
68 | throw new Error('params object must be defined');
|
69 | }
|
70 | if (_.isUndefined(params.lat) || _.isFunction(params.lat) || _.isNull(params.lat)) {
|
71 | throw new Error("lat must be defined");
|
72 | }
|
73 | if (_.isUndefined(params.lng) || _.isFunction(params.lng) || _.isNull(params.lng)) {
|
74 | throw new Error("lng must be defined");
|
75 | }
|
76 | };
|
77 |
|
78 | helper.checkStartLocParams = function(params) {
|
79 | if(_.isUndefined(params) || _.isNull(params)) {
|
80 | throw new Error('params object must be defined');
|
81 | }
|
82 | if (_.isUndefined(params.sLat) || _.isFunction(params.sLat) || _.isNull(params.sLat)) {
|
83 | throw new Error("sLat must be defined");
|
84 | }
|
85 | if (_.isUndefined(params.sLng) || _.isFunction(params.sLng) || _.isNull(params.sLng)) {
|
86 | throw new Error("sLat must be defined");
|
87 | }
|
88 | };
|
89 |
|
90 | helper.checkEndLocParams = function(params) {
|
91 | if(_.isUndefined(params) || _.isNull(params)) {
|
92 | throw new Error('params object must be defined');
|
93 | }
|
94 | if (_.isUndefined(params.eLat) || _.isFunction(params.eLat) || _.isNull(params.eLat)) {
|
95 | throw new Error("eLat must be defined");
|
96 | }
|
97 | if (_.isUndefined(params.eLng) || _.isFunction(params.eLng) || _.isNull(params.eLng)) {
|
98 | throw new Error("eLat must be defined");
|
99 | }
|
100 | };
|
101 |
|
102 |
|
103 | module.exports = helper; |
\ | No newline at end of file |