const db = require(`../config/dbMysqlConn`); const MysqlHelpers = require(`../library/LibMysqlHelper`); class DriversModels { static DEFAULT_PHONE_CODE = 62; // t_drivers static IS_INACTIVE = 0; static IS_ACTIVE = 1; static IN_ORD_YES = 1; static IN_ORD_NO = 2; // t_phone_devices static IS_LOGOUT = 0; static IS_LOGIN = 1; // start t_drivers static all() { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_drivers;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static find(id) { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_drivers WHERE id = ? LIMIT 1;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query, [id]); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, [id], (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static findPhone(phone) { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_drivers WHERE dlt is null AND phone = ? LIMIT 1;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query, [phone]); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, [phone], (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static create(data) { return new Promise(async (resolve, reject) => { const query = `INSERT INTO t_drivers SET ?;`; db.query(query, data, (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static update(data, id) { return new Promise(async (resolve, reject) => { const query = `UPDATE t_drivers SET ? WHERE id = ?;`; db.query(query, [data, id], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static delete(id) { return new Promise(async (resolve, reject) => { const query = `DELETE FROM t_drivers WHERE id = ?;`; db.query(query, [id], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static bundleUpdtOrdDrvVhc (updtDrv = {}, updtVhc = {}) { return new Promise(async (resolve, reject) => { try { const conn = await MysqlHelpers.createConnection(); await MysqlHelpers.createTrx(conn); let result = undefined; if (Object.keys(updtDrv).length > 0) result = await MysqlHelpers.queryTrx(conn, `UPDATE t_drivers SET ? WHERE id = ?;`, [updtDrv, updtDrv.id]); if (Object.keys(updtVhc).length > 0) result = await MysqlHelpers.queryTrx(conn, `UPDATE t_vehicles SET ? WHERE id = ?;`, [updtVhc, updtVhc.id]); await MysqlHelpers.commit(conn); resolve({ type: 'success', result, }) } catch (err) { reject(err); } }) } // end t_drivers // start t_phone_devices static getDeviceByDid(did) { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_phone_devices WHERE dlt is null AND did = ? LIMIT 1;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query, [did]); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, [did], (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static getDeviceByImei(device_id) { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_phone_devices WHERE dlt is null AND device_id = ? LIMIT 1;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query, [device_id]); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, [device_id], (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static getDriversLogin(is_login) { return new Promise(async (resolve, reject) => { const query = `SELECT * FROM t_phone_devices WHERE dlt is null AND is_login = ?;`; try { const conn = await MysqlHelpers.createConnection(); const result = await MysqlHelpers.query(conn, query, [is_login]); await MysqlHelpers.releaseConnection(conn); resolve(result); } catch (e) { reject(e); } // db.query(query, [device_id], (err, results) => { // if (err) { // reject(err); // return false; // } // resolve(results); // }); }); } static insPhoneDevice(data) { return new Promise(async (resolve, reject) => { const query = `INSERT INTO t_phone_devices SET ?;`; db.getConnection(function (err, conn) { if (err) { conn.release(); reject(err); return false; } conn.beginTransaction(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.query(query, data, function (err, resp) { if (err) { conn.rollback(async function () { conn.release(); reject(err.message); }); return false; } // Number(resp.insertId); conn.commit(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.release(); resolve(resp); return true; }); }); }); }); }); } static updtPhoneDevice(data, id) { return new Promise(async (resolve, reject) => { const query = `UPDATE t_phone_devices SET ? WHERE id = ?;`; db.getConnection(function (err, conn) { if (err) { conn.release(); reject(err); return false; } conn.beginTransaction(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.query(query, [data, id], function (err, resp) { if (err) { conn.rollback(async function () { conn.release(); reject(err.message); }); return false; } conn.commit(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.release(); resolve(resp); return true; }); }); }); }); }); } // end t_phone_devices } module.exports = DriversModels;