Socket
Socket
Sign inDemoInstall

skyscannerjs

Package Overview
Dependencies
5
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.1 to 0.2.0

405

lib/skyscanner.js

@@ -6,3 +6,3 @@ "use strict";

});
exports.Skyscanner = undefined;
exports.API = undefined;

@@ -15,2 +15,6 @@ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _querystring = require("querystring");
var _querystring2 = _interopRequireDefault(_querystring);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -20,74 +24,395 @@

var Skyscanner = exports.Skyscanner = function () {
function Skyscanner(apiKey) {
var _this = this;
var API = exports.API = function () {
function API(apiKey) {
_classCallCheck(this, API);
_classCallCheck(this, Skyscanner);
this.apiKey = apiKey;
this.flights = {
livePrices: {
session: function session(data) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.flightPricingURL;
data.apiKey = apiKey;
data = _querystring2.default.stringify(data);
return _axios2.default.post(url, data, {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": asJSON ? "application/json" : "application/xml"
}
});
},
poll: function poll(session) {
var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var url = API.flightPricingURL + "/" + session;
params.apiKey = apiKey;
return _axios2.default.get(url, { params: params });
},
bookingDetails: {
session: function session(_session, data) {
var url = API.flightPricingURL + "/" + _session + "/booking";
data.apiKey = apiKey;
data = _querystring2.default.stringify(data);
return _axios2.default.put(url, data);
},
poll: function poll(session, itinerary) {
var params = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
var url = API.flightPricingURL + "/" + session + "/booking/" + itinerary;
params.apiKey = apiKey;
return _axios2.default.get(url, { params: params });
}
}
},
browse: {
quotes: function quotes(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.browseQuotesURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.originPlace;
url += "/" + params.destinationPlace;
url += "/" + params.outboundPartialDate;
if (params.inboundPartialDate) {
url += "/" + params.inboundPartialDate;
}
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml",
"X-Forwarded-For": params.ip
},
params: {
apiKey: apiKey
}
});
},
routes: function routes(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.browseRoutesURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.originPlace;
url += "/" + params.destinationPlace;
url += "/" + params.outboundPartialDate;
if (params.inboundPartialDate) {
url += "/" + params.inboundPartialDate;
}
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml",
"X-Forwarded-For": params.ip
},
params: {
apiKey: apiKey
}
});
},
dates: function dates(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.browseDatesURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.originPlace;
url += "/" + params.destinationPlace;
url += "/" + params.outboundPartialDate;
if (params.inboundPartialDate) {
url += "/" + params.inboundPartialDate;
}
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml",
"X-Forwarded-For": params.ip
},
params: {
apiKey: apiKey
}
});
},
grid: function grid(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.browseGridURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.originPlace;
url += "/" + params.destinationPlace;
url += "/" + params.outboundPartialDate;
if (params.inboundPartialDate) {
url += "/" + params.inboundPartialDate;
}
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml",
"X-Forwarded-For": params.ip
},
params: {
apiKey: apiKey
}
});
}
}
};
this.carHire = {
livePrices: {
session: function session(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.carHirePricingURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.pickupplace;
url += "/" + params.dropoffplace;
url += "/" + params.pickupdatetime;
url += "/" + params.dropoffdatetime;
url += "/" + params.driverage;
return _axios2.default.get(url, {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": asJSON ? "application/json" : "application/xml"
},
params: {
apiKey: apiKey,
userip: params.ip
}
});
},
poll: function poll(session, deltaExcludedWebsites) {
var url = API.carHirePricingURL + "/" + session;
var params = {};
if (deltaExcludedWebsites) {
params.deltaExcludedWebsites = deltaExcludedWebsites;
}
return _axios2.default.get(url, { params: params });
}
}
};
this.hotels = {
livePrices: {
session: function session(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.hotelPricingURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.entityId;
url += "/" + params.checkindate;
url += "/" + params.checkoutdate;
url += "/" + params.guests;
url += "/" + params.rooms;
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml"
},
params: {
apiKey: apiKey
}
});
},
poll: function poll(session) {
var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var url = API.hotelPricingURL + "/" + session;
return _axios2.default.get(url, { params: params });
},
details: {
session: function session(_session2, params) {
var url = API.hotelDetailsURL + "/details/" + _session2;
return _axios2.default.get(url, { params: params });
},
poll: function poll(session, params) {
var url = API.hotelDetailsURL + "/polldetails/" + session;
return _axios2.default.get(url, { params: params });
}
}
},
autosuggest: function autosuggest(params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.hotelAutosuggestURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.query;
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml"
},
params: {
apiKey: apiKey
}
});
}
};
this.reference = {
currencies: function currencies() {
var url = Skyscanner.referenceURL + "/currencies";
return _this.get(url);
var url = API.referenceURL + "/currencies";
return _axios2.default.get(url, {
params: {
apiKey: apiKey
}
});
},
locales: function locales() {
var url = Skyscanner.referenceURL + "/locales";
return _this.get(url);
var url = API.referenceURL + "/locales";
return _axios2.default.get(url, {
params: {
apiKey: apiKey
}
});
},
countries: function countries(locale) {
var url = Skyscanner.referenceURL + "/countries/" + locale;
return _this.get(url);
var url = API.referenceURL + "/countries/" + locale;
return _axios2.default.get(url, {
params: {
apiKey: apiKey
}
});
}
};
this.locationAutosuggest = function (params) {
var asJSON = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var url = API.locationAutosuggestURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
var reqParams = {
apiKey: apiKey
};
if (params.query) {
reqParams.query = params.query;
} else {
reqParams.id = params.id;
}
return _axios2.default.get(url, {
headers: {
"Accept": asJSON ? "application/json" : "application/xml"
},
params: reqParams
});
};
this.referral = function (params) {
var url = API.referralURL;
url += "/" + params.market;
url += "/" + params.currency;
url += "/" + params.locale;
url += "/" + params.originPlace;
url += "/" + params.destinationPlace;
url += "/" + params.outboundPartialDate;
if (params.inboundPartialDate) {
url += "/" + params.inboundPartialDate;
}
return _axios2.default.get(url, {
headers: {
"X-Forwarded-For": params.ip
},
params: {
apiKey: apiKey
}
});
};
}
_createClass(Skyscanner, [{
key: "get",
value: function get(url, params, config) {
return this.request(_axios2.default.get, url, params, config);
_createClass(API, null, [{
key: "baseURL",
get: function get() {
return "http://partners.api.skyscanner.net/apiservices";
}
}, {
key: "post",
value: function post(url, params, config) {
return this.request(_axios2.default.post, url, params, config);
key: "referenceURL",
get: function get() {
return API.baseURL + "/reference/v1.0";
}
}, {
key: "put",
value: function put(url, params, config) {
return this.request(_axios2.default.put, url, params, config);
key: "flightPricingURL",
get: function get() {
return API.baseURL + "/pricing/v1.0";
}
}, {
key: "request",
value: function request(method, url) {
var params = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
var config = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
config.params = config.params || params;
config.params.apiKey = this.apiKey;
return method(url, config);
key: "browseQuotesURL",
get: function get() {
return API.baseURL + "/browsequotes/v1.0";
}
}], [{
key: "baseURL",
}, {
key: "browseRoutesURL",
get: function get() {
return "http://partners.api.skyscanner.net/apiservices";
return API.baseURL + "/browseroutes/v1.0";
}
}, {
key: "referenceURL",
key: "browseDatesURL",
get: function get() {
return Skyscanner.baseURL + "/reference/v1.0";
return API.baseURL + "/browsedates/v1.0";
}
}, {
key: "locationSchemas",
key: "browseGridURL",
get: function get() {
return ["Iata", "GeoNameCode", "GeoNameId", "Rnid", "Sky"];
return API.baseURL + "/browsegrid/v1.0";
}
}, {
key: "carrierSchemas",
key: "carHirePricingURL",
get: function get() {
return ["Iata", "Icao", "Skyscanner"];
return API.baseURL + "/carhire/liveprices/v2";
}
}, {
key: "hotelPricingURL",
get: function get() {
return API.baseURL + "/hotels/liveprices/v2";
}
}, {
key: "hotelDetailsURL",
get: function get() {
return API.baseURL + "/hotels/livedetails/v2";
}
}, {
key: "hotelAutosuggestURL",
get: function get() {
return API.baseURL + "/hotels/autosuggest/v2";
}
}, {
key: "locationAutosuggestURL",
get: function get() {
return API.baseURL + "/autosuggest/v1.0";
}
}, {
key: "referralURL",
get: function get() {
return API.baseURL + "/referral/v1.0";
}
}]);
return Skyscanner;
return API;
}();

4

package.json
{
"name": "skyscannerjs",
"version": "0.0.1",
"version": "0.2.0",
"description": "Node.js wrapper for the Skyscanner travel APIs.",
"main": "lib/skyscanner.js",
"scripts": {
"test": "npm run build && mocha --compilers js:babel-core/register",
"test": "npm run build && mocha --compilers js:babel-core/register --timeout 30000",
"build": "babel src --presets babel-preset-es2015 --out-dir lib",

@@ -9,0 +9,0 @@ "prepublish": "npm run build",

# SkyscannerJS
Promise based wrapper for the Skyscanner travel APIs.
[![npm version](https://badge.fury.io/js/skyscannerjs.svg)](https://badge.fury.io/js/skyscannerjs)
[![npm downloads](https://img.shields.io/npm/dm/skyscannerjs.svg)](https://img.shields.io/npm/dm/skyscannerjs)
[![CI status](https://travis-ci.org/Garee/skyscannerjs.svg?branch=master)](https://travis-ci.org/Garee/skyscannerjs)
## Install
```sh
$ npm install skyscannerjs
```
## Examples
### Create an API object.
```javascript
// ES6
import skyscanner from "skyscanner";
const apiKey = "s3r3t4PIk3y";
const api = skyscanner.API(apiKey);
// ES5
var skyscanner = require("skyscanner");
var apiKey = "s3r3t4PIk3y";
var api = skyscanner.API(apiKey);
```
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc