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

3.5% Statements 2/57
0% Branches 0/16
0% Functions 0/9
3.57% Lines 2/56

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 113 114 1152x                                                                                                                                                                                                                                   2x
const sql = require("./db.js");
class Simulator {
    constructor(simulator) {
        this.Registration = simulator.Registration;
        this.Manufacturer = simulator.Manufacturer;
        this.Model = simulator.Model;
        this.AircraftType = simulator.AircraftType;
        this.Version = simulator.Version
        this.Name = simulator.Name;
        this.PilotID = simulator.PilotID;
        this.SimDeviceType = simulator.SimDeviceType;
        this.Status = simulator.Status;
    }
 
    static create(newSimulator, result) {
 
        sql.query("INSERT INTO Simulators SET ?", newSimulator, (err, res) => {
            if (err) {
                console.log("error: ", err);
                result(err, null);
                return;
            }
 
            console.log("crated siulator: ", { ID: res.insertId, ...newSimulator });
            const apiResponse = {
                ops: "newSimulatorAdded",
                status: "success",
                message: "Simulator created with registration " + newSimulator.Registration,
                payload: { ID: res.insertId, ...newSimulator },
                affectedRows: 1
            };
            result(null, apiResponse);
        });
    }
 
    static searchByReg(reg, pilotID, exact, result) {
        console.log(reg);
        console.log(exact);
        var query = `SELECT * FROM Simulators WHERE PilotID = ${pilotID} and (Registration LIKE '%${reg}%' or Name LIKE '%${reg}%')`;
        if (exact === "true") {
            query = `SELECT * FROM Simulators WHERE PilotID = ${pilotID} and 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 simulator count", res.length);
                const apiResponse = {
                    ops: "searchByReg",
                    status: "success",
                    message: "Simulators 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(pilotID, result) {
        var query = `SELECT * FROM Simulators where PilotID = ${pilotID} and 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 simulator count", res.length);
                console.log("found simulator ", res);
                const apiResponse = {
                    ops: "getAllSimulators",
                    status: "success",
                    message: "Get All Simulators",
                    payload: res,
                    affectedRows: res.length
                };
                result(null, apiResponse);
                return;
            }
        });
    }
    static sync(pilotID, version, result) {
        var query = `SELECT * FROM Simulators 
        WHERE PilotID = ? and Version > ?`;
        sql.query(query, [pilotID, version], (err, res) => {
            if (err) {
                console.log("error: ", err);
                result(err, null);
                return;
            }
 
            const apiResponse = {
                ops: "sync",
                status: "success",
                message: "Sync Simulators",
                payload: res,
                affectedRows: res.length
            };
            result(null, apiResponse);
        });
    }
 
}
 
module.exports = Simulator;