Update aircraft db logic to include ICAO type information

This commit is contained in:
Carlos Salaverria 2016-08-26 14:25:25 -05:00
parent 5290b58940
commit 08ffda1aa8

View file

@ -22,6 +22,7 @@
"use strict"; "use strict";
var _aircraft_cache = {}; var _aircraft_cache = {};
var _aircraft_type_cache = null;
function getAircraftData(icao) { function getAircraftData(icao) {
var defer; var defer;
@ -48,7 +49,7 @@ function request_from_db(icao, level, defer) {
var subkey; var subkey;
if (dkey in data) { if (dkey in data) {
defer.resolve(data[dkey]); getIcaoAircraftTypeData(data[dkey], defer);
return; return;
} }
@ -67,6 +68,34 @@ function request_from_db(icao, level, defer) {
}); });
} }
function getIcaoAircraftTypeData(aircraftData, defer) {
if (_aircraft_type_cache === null) {
$.getJSON("db/aircraft_types/icao_aircraft_types.json")
.done(function(typeLookupData) {
_aircraft_type_cache = typeLookupData;
})
.always(function() {
lookupIcaoAircraftType(aircraftData, defer);
});
}
else {
lookupIcaoAircraftType(aircraftData, defer);
}
}
function lookupIcaoAircraftType(aircraftData, defer) {
if (_aircraft_type_cache !== null && "t" in aircraftData) {
var typeDesignator = aircraftData["t"].toUpperCase();
if (typeDesignator in _aircraft_type_cache) {
var typeData = _aircraft_type_cache[typeDesignator];
aircraftData.desc = typeData.desc;
aircraftData.wtc = typeData.wtc;
}
}
defer.resolve(aircraftData);
}
var _request_count = 0; var _request_count = 0;
var _request_queue = []; var _request_queue = [];
var _request_cache = {}; var _request_cache = {};