salix/services/mailer/application/template/client-welcome/client-welcome.js

47 lines
1.8 KiB
JavaScript

var path = require('path');
var database = require(path.join(__dirname, '../../database.js'));
var format = require(path.join(__dirname, '../../util/format.js'));
module.exports = class ClientWelcome {
getData(params, cb) {
let query = `SELECT
c.id clientId,
CONCAT(w.name, ' ', w.firstName) name,
w.phone AS phone,
CONCAT(wu.name, '@verdnatura.es') AS email,
u.name AS userName,
LOWER(ct.code) countryCode,
c.email recipient
FROM client c
JOIN account.user u ON u.id = c.id
LEFT JOIN worker w ON w.id = c.salesPersonFk
LEFT JOIN account.user wu ON wu.id = w.userFk
JOIN country ct ON ct.id = c.countryFk
WHERE c.id = ?`;
database.pool.query(query, [params.clientId], (error, result) => {
if (error || result.length == 0)
return cb(new Error('No template data found'));
Object.assign(this, result[0]);
cb();
});
}
get salesPersonName() {
if (this.name)
return `<div>${this._.salesPersonNameText}: <strong>${this.name}</strong></div>`;
}
get salesPersonPhone() {
if (this.phone)
return `<div>${this._.salesPersonPhoneText}: <strong>${format.phone(this.phone)}</strong></div>`;
}
get salesPersonEmail() {
if (this.email)
return `<div>${this._.salesPersonEmailText}: ` +
`<strong><a href="mailto:${this.email}" target="_blank" style="color:#8dba25">${this.email}</strong></div>`;
}
};