All files / mylog-api/models aircraft.model.js

3.7% Statements 2/54
0% Branches 0/16
0% Functions 0/9
3.77% Lines 2/53

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 1132x                                                                                                                                                                                                                               2x
const sql = require("./db.js");
class Aircraft {
	constructor(aircraft) {
		this.Registration = aircraft.Registration;
		this.Manufacturer = aircraft.Manufacturer;
		this.Model = aircraft.Model;
		this.AircraftType = aircraft.AircraftType;
		this.Version = aircraft.Version
		this.Photo = aircraft.Photo;
		this.Status = aircraft.Status;
	}
 
	static create(newAircraft, result) {
 
		sql.query("INSERT INTO Aircrafts SET ?", newAircraft, (err, res) => {
			if (err) {
				console.log("error: ", err);
				result(err, null);
				return;
			}
 
			console.log("crated aircraft: ", { ID: res.insertId, ...newAircraft });
			const apiResponse = {
				ops: "newAircraftAdded",
				status: "success",
				message: "Aircraft created with registration " + newAircraft.reg,
				payload: { ID: res.insertId, ...newAircraft },
				affectedRows: 1
			};
			result(null, apiResponse);
		});
	}
 
	static searchByReg(reg, exact, result) {
		console.log(reg);
		console.log(exact);
		var query = `SELECT * FROM Aircrafts WHERE Registration LIKE '%${reg}%'`;
		if (exact === "true") {
			query = `SELECT * FROM Aircrafts WHERE Registration = '${reg}'`;
		}
		console.log("running query");
		sql.query(query, (err, res) => {
			if (err) {
				console.log("error: ", err);
				if (err.toString().indexOf('ETIMEDOUT') !== -1) process.exit()
				result(err, null);
				return;
			}
			else {
 
				console.log("found aircraft count", res.length);
				const apiResponse = {
					ops: "searchByReg",
					status: "success",
					message: "Aircraft registration search, exact: " + exact,
					payload: exact === true ? res.length === 0 ? {} : res[0] : res,
					affectedRows: res.length
				};
				console.log(apiResponse);
				result(null, apiResponse);
				return;
			}
		});
	}
 
	static get(result) {
		var query = `SELECT * FROM Aircrafts where Status = 5`;
		console.log("running query");
		sql.query(query, (err, res) => {
			if (err) {
				console.log("error: ", err);
				result(err, null);
				return;
			}
			else {
				console.log("found aircraft count", res.length);
				const apiResponse = {
					ops: "getAllAircrafts",
					status: "success",
					message: "Get All Aircrafts",
					payload: res,
					affectedRows: res.length
				};
				result(null, apiResponse);
				return;
			}
		});
	}
 
	static sync(version, result) {
		var query = `SELECT * FROM Aircrafts 
        where Version > ? and Status = 5`;
		sql.query(query, [version], (err, res) => {
			if (err) {
				console.log("error: ", err);
				result(err, null);
				return;
			}
 
			const apiResponse = {
				ops: "sync",
				status: "success",
				message: "Sync Aircrafts",
				payload: res,
				affectedRows: res.length
			};
			result(null, apiResponse);
		});
	}
 
}
 
module.exports = Aircraft;