Files
gps-backend/models/LogbookKeysModels.js
2025-05-29 08:59:40 +00:00

155 lines
4.1 KiB
JavaScript
Executable File

// const db = require(`../config/dbMysqlConn`);
const MysqlHelpers = require(`../library/LibMysqlHelper`);
class LogbookKeysModels {
static IS_INACTIVE = 0;
static IS_ACTIVE = 1;
// t_datatypes;
static TEXT = 'string';
static NUMBER = 'int';
static IMG_BASE64 = 'img_base64';
static COMMA = 'double';
static list(filter = {}) {
return new Promise(async (resolve, reject) => {
let params = [], select = '', where = '', join = '', order_by = '', group_by = '', limit = '';
if (filter['lgb_id']) {
where += ' AND lgb_key.id = ?';
params.push(filter['lgb_id']);
}
if (filter['is_active']) {
where += ' AND lgb_key.is_active = ?';
params.push(filter['is_active']);
}
if (filter['join_type']) {
select += ',lgb_type.name as type_name';
join += ' LEFT JOIN t_lgb_types as lgb_type ON lgb_key.type = lgb_type.id';
}
if (filter['group_by']) group_by = ' GROUP BY ' + filter['group_by'];
if (filter['order_by']) order_by = ' ORDER BY ' + filter['order_by'];
if (filter['limit']) limit = ' LIMIT ' + filter['limit'];
let query = `SELECT
lgb_key.*,lgb_key.id as lgb_id
${select}
FROM t_lgb_keys as lgb_key
${join}
WHERE lgb_key.dlt is null
${where}
${group_by}
${order_by}
${limit}
;`;
try {
const conn = await MysqlHelpers.createConnection();
const result = await MysqlHelpers.query(conn, query, params);
await MysqlHelpers.releaseConnection(conn);
resolve(result);
} catch (e) {
reject(e);
}
// db.query(query, params, function (err, resp) {
// if (err) {
// reject(err);
// return false;
// }
// resolve(resp);
// return true;
// });
});
}
static gets() {
return new Promise(async (resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_lgb_keys WHERE dlt is null;';
try {
const conn = await MysqlHelpers.createConnection();
const result = await MysqlHelpers.query(conn, query, params);
await MysqlHelpers.releaseConnection(conn);
resolve(result);
} catch (e) {
reject(e);
}
// db.query(query, params, function (err, resp) {
// if (err) {
// reject(err);
// return false;
// }
// resolve(resp);
// return true;
// });
});
}
static ins(ins = {}) {
return new Promise(async (resolve, reject) => {
try {
const conn = await MysqlHelpers.createConnection();
await MysqlHelpers.createTrx(conn);
let result = undefined;
if (Object.keys(ins).length > 0) result = await MysqlHelpers.queryTrx(conn, `INSERT t_lgb_keys SET ?;`, [ins]);
await MysqlHelpers.commit(conn);
resolve({
type: 'success',
result,
})
} catch (err) {
reject(err);
}
})
}
static updt(updt = {}) {
return new Promise(async (resolve, reject) => {
try {
const conn = await MysqlHelpers.createConnection();
await MysqlHelpers.createTrx(conn);
let result = undefined;
if (Object.keys(updt).length > 0) result = await MysqlHelpers.queryTrx(conn, `UPDATE t_lgb_keys SET ? WHERE id = ?;`, [updt, updt.id]);
await MysqlHelpers.commit(conn);
resolve({
type: 'success',
result,
})
} catch (err) {
reject(err);
}
})
}
static del(del = {}) {
return new Promise(async (resolve, reject) => {
try {
const conn = await MysqlHelpers.createConnection();
await MysqlHelpers.createTrx(conn);
let result = undefined;
if (Object.keys(del).length > 0) result = await MysqlHelpers.queryTrx(conn, `DELETE t_lgb_keys WHERE id = ?;`, [del.id]);
await MysqlHelpers.commit(conn);
resolve({
type: 'success',
result,
})
} catch (err) {
reject(err);
}
})
}
}
module.exports = LogbookKeysModels;