class geardirectory {
constructor(alogger) {
// always initialize all instance properties
this.logger = alogger;
this.gearList = [];
this.loadGearDirectory((success) => {
this.logger.info('MODELS-GEARDIRECTORY | Loaded gear directory into memory successfully');
})
}
/**
* Loads gear directory from database into memory
* @param {*} callback
*/
loadGearDirectory(callback) {
this.logger.debug('MODELS-GEARDIRECTORY | Reading gear directory into memory');
let sql = `SELECT * FROM gearDirectory`;
global.coreDb.all(sql, [], (err, rows) => {
if (err) {
this.logger.error('MODELS-GEARDIRECTORY | Error reading gear directory from database: ' + err);
return callback(false);
}
this.gearList = rows;
return callback(true);
});
}
findGearTypeFromGearString(gearString) {
var regex = "([a-zA-Z0-9]*-[a-zA-Z0-9]*-[a-zA-Z0-9]*)+$";
var found = gearString.match(regex);
return found;
}
getLongNameForGearString(gearString) {
var gearArray = this.findGearTypeFromGearString(gearString);
var retVal = '';
if (gearArray != null) {
var gearMatch = gearArray[0];
var gearPartsArray = gearMatch.split('-');
if (gearPartsArray.length === 3) {
var gearTypeString = gearPartsArray[1];
this.gearList.forEach((gear) => {
if (parseInt(gear.gearType) === parseInt(gearTypeString)) {
retVal = gear.gearDescription;
}
})
}
}
return retVal;
}
}
// export the class
module.exports = geardirectory;