@aerodb/js
Version:
Javascript wrapper for the AeroDB API
119 lines • 8.42 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import axios from 'axios';
import store from 'store2';
import { TOKEN_KEY } from './constants';
import { eventsManager } from './modules/Event.module';
import { handleApiRequest } from './controllers/api.controller';
/**
* Interact with the AeroDB API
*
* @example client[module][method]
*
* @example client.shipment.list()
*
*/
export default class AeroClient {
constructor(options) {
this.airport = {
/**
* List all airports
*/
list: (parameters) => __awaiter(this, void 0, void 0, function* () {
return yield handleApiRequest('GET', 'airports', parameters, this.apiInstance);
}),
/**
* Get an airport using its id
*
* @param airportId Airport id
*/
get: (airportId) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`airports/${airportId}`)).data;
}),
/**
* Get the latest METARs for an airport
* @param airportId Airport id
* @returns METAR data from the last 24 hours
*/
metar: (airportId) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`airports/${airportId}/metar`)).data;
}),
};
this.airline = {
/**
* List all airlines
*/
list: (parameters) => __awaiter(this, void 0, void 0, function* () {
return yield handleApiRequest('GET', 'airlines', parameters, this.apiInstance);
}),
/**
* Get airline by ICAO code
*
* @param airlineId Airline id
*/
get: (airlineId) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`airlines/${airlineId}`)).data;
}),
};
/**
* NOTAMs (Notice to Airmen) are notices containing information concerning the establishment, condition or change in any aeronautical facility, service, procedure or hazard, the timely knowledge of which is essential to personnel concerned with flight operations.
*/
this.notam = {
/**
* List all NOTAMs
* @param parameters Query parameters
* @returns List of NOTAMs
*/
list: (parameters) => __awaiter(this, void 0, void 0, function* () {
return yield handleApiRequest('GET', 'notams', parameters, this.apiInstance);
}),
get: (notamId) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`notams/${notamId}`))
.data;
}),
};
this.countries = {
/**
* List all countries
* @returns List of countries
*/
list: (parameters) => __awaiter(this, void 0, void 0, function* () {
return yield handleApiRequest('GET', 'countries', parameters, this.apiInstance);
}),
/**
* Get a country by its code
* @param countryCode Country code (ISO 3166-1 alpha-2)
* @returns Country data
*/
get: (countryCode) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`countries/${countryCode}`)).data;
}),
};
/**
* Perform a search query on the database
* @param query
* @returns
*/
this.search = (query) => __awaiter(this, void 0, void 0, function* () {
return (yield this.apiInstance.get(`search?query=${query}`)).data;
});
this.apiInstance = axios.create();
this.event = eventsManager;
this.apiUrl = options.apiUrl;
this.apiInstance.defaults.baseURL = options.apiUrl;
this.apiInstance.defaults.headers.common['x-api-key'] = options.apiKey;
// Load token from localStorage
const token = store.get(TOKEN_KEY);
if (token !== null) {
this.apiInstance.defaults.headers.common.Authorization = `Bearer ${token}`;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWVyb0NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BZXJvQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBNkIsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT2hFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVU7SUFpQjdCLFlBQVksT0FBc0I7UUFnQmxDLFlBQU8sR0FBRztZQUNSOztlQUVHO1lBQ0gsSUFBSSxFQUFFLENBQU8sVUFBd0MsRUFBc0IsRUFBRTtnQkFDM0UsT0FBTyxNQUFNLGdCQUFnQixDQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRixDQUFDLENBQUE7WUFDRDs7OztlQUlHO1lBQ0gsR0FBRyxFQUFFLENBQU8sU0FBaUIsRUFBRSxFQUFFO2dCQUMvQixPQUFPLENBQ0wsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBMkYsWUFBWSxTQUFTLEVBQUUsQ0FBQyxDQUM5SSxDQUFDLElBQUksQ0FBQztZQUNULENBQUMsQ0FBQTtZQUVEOzs7O2VBSUc7WUFDSCxLQUFLLEVBQUUsQ0FBTyxTQUFpQixFQUEyRyxFQUFFO2dCQUMxSSxPQUFPLENBQ0wsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FDeEIsWUFBWSxTQUFTLFFBQVEsQ0FDOUIsQ0FDRixDQUFDLElBQUksQ0FBQztZQUNULENBQUMsQ0FBQTtTQUNGLENBQUM7UUFFRixZQUFPLEdBQUc7WUFDUjs7ZUFFRztZQUNILElB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