// aviation.js // Namhyeon Go // https://github.com/gnh1201/welsonjs // // ***SECURITY NOTICE*** // Aviation Data Integration requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy. // - AviationStack website: https://aviationstack.com/?utm_source=FirstPromoter&utm_medium=Affiliate&fpr=namhyeon71 // - SearchApi website: https://www.searchapi.io/?via=namhyeon // var HTTP = require("lib/http"); var CRED = require("lib/credentials"); function getData(type, params, limit, offset) { var params = params || {}; var limit = (function(n) { return n > 0 ? n : 100; }(parseInt(limit)); var offset = (function(n) { return n > -1 ? n : 0; }(parseInt(limit)); params["limit"] = limit; params["offset"] = offset; params["access_key"] = CRED.get("apikey", "aviationstack"); var response = HTTP.create() .setParameters(params) .open("GET", "https://api.aviationstack.com/v1/" + type) .send(); return response.responseBody; } function getFlights(params, limit, offset) { return getData("flights", params, limit, offset); } function getRoutes(params, limit, offset) { return getData("routes", params, limit, offset); } function getAirports(params, limit, offset) { return getData("airports", params, limit, offset); } function getAirlines(params, limit, offset) { return getData("airlines", params, limit, offset); } function getAircraftTypes(params, limit, offset) { return getData("aircraft_types", params, limit, offset); } function getCities(params, limit, offset) { return getData("cities", params, limit, offset); } function getCountries(params, limit, offset) { return getData("countries", params, limit, offset); } function getFlightSchedules(params, limit, offset) { return getData("timetable", params, limit, offset); } function getFlightsFuture(params, limit, offset) { return getData("flightsFuture", params, limit, offset); } function getRoundTrip(arrival_id, departure_id, outbound_date, return_date) { var response = HTTP.create() .setParameters({ "api_key": CRED.get("apikey", "searchapi"), "arrival_id": arrival_id, "departure_id": departure_id, "engine": "google_flights", "flight_type": "round_trip", "outbound_date": outbound_date, "return_date": return_date }) .open("GET", "https://www.searchapi.io/api/v1/search") .send(); return response.responseBody; } function getOneWay(arrival_id, departure_id, outbound_date) { var response = HTTP.create() .setParameters({ "api_key": CRED.get("apikey", "searchapi"), "arrival_id": arrival_id, "departure_id": departure_id, "engine": "google_flights", "flight_type": "one_way", "outbound_date": outbound_date }) .open("GET", "https://www.searchapi.io/api/v1/search") .send(); return response.responseBody; } exports.getData = getData; exports.getFlights = getFlights; exports.getRoutes = getRoutes; exports.getAirports = getAirports; exports.getAirlines = getAirlines; exports.getAircraftTypes = getAircraftTypes; exports.getCities = getCities; exports.getCountries = getCountries; exports.getFlightSchedules = getFlightSchedules; exports.getFlightsFuture = getFlightsFuture; exports.getRoundTrip = getRoundTrip; exports.getOneWay = getOneWay; exports.VERSIONINFO = "Aviation Data Integration (aviation.js) version 0.1.3"; exports.AUTHOR = "abuse@catswords.net"; exports.global = global; exports.require = global.require;