PK!A7��nvar sql = require("mysql"); var pool = require("../db"); const opts = { errorEventName: "error", logDirectory: "logs", fileNamePattern: "log-.log", dateFormat: "YYYY-MM-DD", }; const log = require("simple-node-logger").createRollingFileLogger(opts); module.exports = { checkMobileGroupName: function (groupId, mobile) { return new Promise((resolve, reject) => { let data = [groupId, mobile]; let query = "select first_name from contacts where group_id = ? and mobile=?"; pool.query(query, data, (err, results, fields) => { try { if (err) { log.info( "[CONTACT], [MODEL], [checkMobileGroupName], [error], [" + err + "]" ); throw err; } else { var numRows = results.length; if (numRows > 0) { return resolve(results[0]); } else { return resolve(false); } } } catch (err) { log.info( "[CONTACT], [MODEL], [checkMobileGroupName], [error], [" + err + "]" ); return reject(err); } }); }); }, checkEmailGroupName: function (groupId, email) { return new Promise((resolve, reject) => { let data = [groupId, email]; let query = "select first_name from contacts where group_id = ? and email=?"; pool.query(query, data, (err, results, fields) => { try { if (err) { log.info( "[CONTACT], [MODEL], [checkEmailGroupName], [error], [" + err + "]" ); throw err; } else { var numRows = results.length; if (numRows > 0) { return resolve(results[0]); } else { return resolve(false); } } } catch (err) { log.info( "[CONTACT], [MODEL], [checkEmailGroupName], [error], [" + err + "]" ); return reject(err); } }); }); }, getUserSmsTemplates: function (startDate, endDate, userId) { return new Promise((resolve, reject) => { let query = "select id, user_id, name, merge_fields, data, status, created_at, updated_at from sms_templates where date(created_at) BETWEEN ? and ? and user_id = ? order by id desc "; const data = [startDate, endDate, userId]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(results); } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [getUserSmsTemplates], [error], [" + err + "]" ); return reject(err); } }); }); }, getUserActiveSmsTemplates: function (userId) { return new Promise((resolve, reject) => { let query = "select id, name, data from sms_templates where user_id = ? and status = 1 order by id desc "; const data = [userId]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(results); } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [getUserActiveSmsTemplates], [error], [" + err + "]" ); return reject(err); } }); }); }, getTemplateById: function (id) { return new Promise((resolve, reject) => { let query = "select id, user_id, name, merge_fields, data, status, created_at, updated_at from sms_templates where id = ? order by id desc "; const data = [id]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { let numRows = results.length; if (numRows > 0) { return resolve(results[0]); } else { return resolve(false); } } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [getUserSmsTemplates], [error], [" + err + "]" ); return reject(err); } }); }); }, getUserTemplateCount: function (id) { return new Promise((resolve, reject) => { let query = "select id from sms_templates where user_id = ? "; const data = [id]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(results.length); } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [getUserTemplateCount], [error], [" + err + "]" ); return reject(err); } }); }); }, checkTemplateName: function (name, userId) { return new Promise((resolve, reject) => { let query = "select id, user_id from sms_templates where name = ? and user_id = ?; "; const data = [name, userId]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { let numRows = results.length; if (numRows > 0) { return resolve(true); } else { return resolve(false); } } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [checkTemplateName], [error], [" + err + "]" ); return reject(err); } }); }); }, addSmsTemplateDB: function (userId, name, mergeFields, message) { return new Promise((resolve, reject) => { let query = "insert into sms_templates (user_id, name, merge_fields, data, status, created_at, updated_at) values(?, ?, ?, ?, ?, now(), now());"; let data = [userId, name, mergeFields, message, 1]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(results.insertId); } } catch (err) { log.info( `[SMS TEMPLATES], [MODEL], [addSmsTemplateDB], [error], [${err}]` ); reject(err); } }); }); }, editSmsTemplateDB: function (userId, id, name, mergeFields, message, status) { return new Promise((resolve, reject) => { const query = "Update sms_templates set name=?, merge_fields=?, data=?, status=?, updated_at = now() where user_id=? and id = ?; "; let data = [name, mergeFields, message, status, userId, id]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(true); } } catch (err) { log.info( `[SMS TEMPLATES], [MODEL], [editSmsTemplateDB], [error], [${err}]` ); reject(err); } }); }); }, getUserSmsTemplatesByName: function (searchValue, userId, startDate, endDate,) { return new Promise((resolve, reject) => { let query = "select id, user_id, name, merge_fields, data, status, created_at, updated_at from sms_templates where name like ? and user_id= ? and date(created_at) BETWEEN ? and ? order by id desc "; const data = [`${searchValue}%`, userId, startDate, endDate,]; pool.query(query, data, (err, results, fields) => { try { if (err) { throw err; } else { return resolve(results); } } catch (err) { log.info( "[SMS TEMPLATES], [MODEL], [getUserSmsTemplates], [error], [" + err + "]" ); return reject(err); } }); }); }, };