a
This commit is contained in:
parent
06fd628922
commit
ff1d371897
@ -13,27 +13,31 @@ const mailjet_from_name = "Fundación Lo Que De Verdad Importa";
|
||||
* @return {Promise}
|
||||
*
|
||||
*/
|
||||
function send(data) {
|
||||
|
||||
function send(header, body) {
|
||||
|
||||
const params = Object.assign(
|
||||
{
|
||||
"From": {
|
||||
"Email": mailjet_from_email,
|
||||
"Name": mailjet_from_name
|
||||
},
|
||||
"To": [{
|
||||
"Email": header.to,
|
||||
"Name": header.name
|
||||
}],
|
||||
"Subject": header.subject,
|
||||
},
|
||||
body
|
||||
);
|
||||
|
||||
const mailjet = require('node-mailjet')
|
||||
.connect(mailjet_public, mailjet_private)
|
||||
const request = mailjet
|
||||
.post("send", { 'version': 'v3.1' })
|
||||
.request({
|
||||
"Messages": [{
|
||||
"From": {
|
||||
"Email": mailjet_from_email,
|
||||
"Name": mailjet_from_name
|
||||
},
|
||||
"To": [{
|
||||
"Email": data.to,
|
||||
"Name": data.name
|
||||
}],
|
||||
"Subject": data.subject,
|
||||
"TextPart": data.text,
|
||||
"HTMLPart": data.html
|
||||
}]
|
||||
"Messages": [params]
|
||||
})
|
||||
|
||||
request
|
||||
.then((result) => {
|
||||
console.log(result.body)
|
||||
@ -43,6 +47,68 @@ function send(data) {
|
||||
console.log(error.statusCode)
|
||||
return error;
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.send = send;
|
||||
/**
|
||||
* Enviar un email con entrada
|
||||
* @header
|
||||
* @param {number} data.to - Email destino
|
||||
* @param {number} data.name - Nombre del contacto destino
|
||||
* @param {number} data.subject - Asunto
|
||||
* @values
|
||||
* @param {number} data.tipoEntrada
|
||||
* @param {number} data.qrCode
|
||||
* @return {Promise}
|
||||
*
|
||||
*/
|
||||
function sendTicket(header, values) {
|
||||
|
||||
const body = {
|
||||
"TemplateID": 978886,
|
||||
"TemplateLanguage": true,
|
||||
"TemplateErrorDeliver": true,
|
||||
"TemplateErrorReporting": {
|
||||
"Email": "info@rodax-software.com",
|
||||
"Name": "Air traffic control"
|
||||
},
|
||||
"Variables": {
|
||||
"tipoEntrada": values.tipoEntrada,
|
||||
"descriptionEntrada": values.descriptionEntrada,
|
||||
"qrCode": values.qrCode,
|
||||
"codeTicket": values.codeTicket,
|
||||
"eventName": values.eventName,
|
||||
"dateInscription": values.dateInscription,
|
||||
"color": values.color,
|
||||
}
|
||||
};
|
||||
|
||||
return send(header, body);
|
||||
};
|
||||
|
||||
/**
|
||||
* Enviar un email
|
||||
* @header
|
||||
* @param {number} data.to - Email destino
|
||||
* @param {number} data.name - Nombre del contacto destino
|
||||
* @param {number} data.subject - Asunto
|
||||
* @subjectAnBody
|
||||
* @param {number} data.text - Cuerpo del mensaje en texto plano
|
||||
* @param {number} data.html - Cuerpo del mensaje en HTML
|
||||
* @return {Promise}
|
||||
*
|
||||
*/
|
||||
function sendMail(header, values) {
|
||||
|
||||
const body = {
|
||||
"TextPart": values.text,
|
||||
"HTMLPart": values.html,
|
||||
};
|
||||
|
||||
return send(header, body);
|
||||
};
|
||||
|
||||
|
||||
module.exports = {
|
||||
sendMail,
|
||||
sendTicket
|
||||
};
|
||||
@ -67,6 +67,7 @@ function getMember(listId, member) {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
function addMember(listId, member) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
// logger.debug('addMember => ', '/lists/' + listId + '/members', ' email: ' + member.email);
|
||||
|
||||
@ -1,17 +1,19 @@
|
||||
var _ = require('lodash');
|
||||
var QRCode = require('qrcode');
|
||||
const moment = require('moment');
|
||||
|
||||
/* params = {
|
||||
code: 'xxxx',
|
||||
date: 'date-time',
|
||||
name: 'xxxx',
|
||||
surname: 'xxxx',
|
||||
color: '#ff',
|
||||
|
||||
} */
|
||||
} */
|
||||
|
||||
module.exports.getInscriptionQRCode = function (params) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var texto = _.padStart(params.code, 4, '0') + '\n' + params.name + ' ' + params.surname;
|
||||
var texto = _.padStart(params.code, 4, '0') + '\n' + moment(params.date).format('DD/MM/YY HH:mm ') + params.name + ' ' + params.surname;
|
||||
var options = {
|
||||
errorCorrectionLevel: 'M',
|
||||
}
|
||||
@ -27,7 +29,7 @@ module.exports.getInscriptionQRCode = function (params) {
|
||||
|
||||
QRCode.toDataURL(texto, options, function (err, qrcode) {
|
||||
if (err) resolve('');
|
||||
//console.log(qrcode);
|
||||
// console.log('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' + qrcode);
|
||||
resolve(qrcode);
|
||||
});
|
||||
})
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
'use strict';
|
||||
const moment = require('moment');
|
||||
const httpStatus = require('http-status');
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const QRHelper = require('../../helpers/qr.helper');
|
||||
@ -413,32 +414,60 @@ console.log('actualizo confirmados de la nueva reserva');
|
||||
else
|
||||
marketingListOfInscription = dataInscription.event.marketingList;
|
||||
*/
|
||||
const member = await eventInscriptionService._addMember(marketingListOfInscription, dataUser.userResult.user, dataInscription.inscription, dataInscription.reservation);
|
||||
//Creamos objeto member para facilitar inserción en mailchimp y envio de correo
|
||||
var member = {
|
||||
marketing_memberId: null,
|
||||
email: dataUser.userResult.user.email,
|
||||
name: dataUser.userResult.user.name,
|
||||
surname: dataUser.userResult.user.surname,
|
||||
source: dataInscription.inscription.source,
|
||||
reservation_code: (dataInscription.reservation) ? dataInscription.reservation.reservation_code : null,
|
||||
date: dataInscription.inscription.date,
|
||||
code_ticket: dataInscription.inscription.code_ticket,
|
||||
validated: dataInscription.inscription.validated,
|
||||
color: (dataInscription.reservation) ? dataInscription.reservation.color : null,
|
||||
description: ((dataInscription.reservation) ? dataInscription.reservation.description : 'Entrada Normal').toUpperCase(),
|
||||
entity: (dataInscription.reservation) ? dataInscription.reservation.Entity.name : dataUser.userResult.user.entityId,
|
||||
userId: dataUser.userResult.user.id
|
||||
}
|
||||
|
||||
console.log('member a añadir a mailchimp y envio correo');
|
||||
console.log(member);
|
||||
|
||||
member.marketing_memberId = await eventInscriptionService._addMember(marketingListOfInscription, member);
|
||||
eventInscriptionService._updateMarketingMemberOfInscription(dataInscription.inscription.id, member.marketing_memberId);
|
||||
|
||||
|
||||
var mailOptions = {
|
||||
//MADAMOS MAIL CON LA ENTRADA
|
||||
const qrConfig = {
|
||||
name: member.name,
|
||||
surname: member.surname,
|
||||
date: member.date,
|
||||
code: member.code_ticket,
|
||||
color: member.color,
|
||||
}
|
||||
const qrCode = await QRHelper.getInscriptionQRCode(qrConfig);
|
||||
|
||||
var headerMail = {
|
||||
to: member.email,
|
||||
name: member.name + ' ' + member.surname,
|
||||
subject: ((member.validated) ? 'Entrada' : 'Lista de espera') + ' para el congreso ' + dataInscription.event.name + ' confirmada'
|
||||
}
|
||||
|
||||
if (dataInscription.inscription.validated) {
|
||||
mailOptions = Object.assign(mailOptions, {
|
||||
subject: messages.emails.confirmInvitation.subject.concat(dataInscription.event.name),
|
||||
text: messages.emails.confirmInvitation.body.text.concat(dataInscription.event.name),
|
||||
html: messages.emails.confirmInvitation.body.html.concat(dataInscription.event.name),
|
||||
});
|
||||
} else {
|
||||
mailOptions = Object.assign(mailOptions, {
|
||||
subject: messages.emails.confirmInvitationToWaitingList.subject.concat(dataInscription.event.name),
|
||||
text: messages.emails.confirmInvitationToWaitingList.body.text.concat(dataInscription.event.name),
|
||||
html: messages.emails.confirmInvitationToWaitingList.body.html.concat(dataInscription.event.name),
|
||||
});
|
||||
};
|
||||
var bodyMail = {
|
||||
tipoEntrada: (member.validated) ? 'Entrada' : 'Lista de espera',
|
||||
descriptionEntrada: member.description,
|
||||
qrCode: qrCode,
|
||||
color: qrConfig.color,
|
||||
codeTicket: member.code_ticket,
|
||||
eventName: dataInscription.event.name,
|
||||
dateInscription: moment(dataInscription.event.init_date).format('D [de] MMMM [de] YYYY'),
|
||||
}
|
||||
|
||||
console.log(headerMail, bodyMail);
|
||||
// if ((member.validated))
|
||||
emailHelper.sendTicket(headerMail, bodyMail);
|
||||
|
||||
console.log('maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaail');
|
||||
console.log(mailOptions);
|
||||
emailHelper.send(mailOptions);
|
||||
return handleResultResponse(await dataInscription.inscription.toJSON(), null, params, res, httpStatus.CREATED)
|
||||
},
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ function generateNewCodeTicket() {
|
||||
return id;
|
||||
}
|
||||
|
||||
const extraMethods = {
|
||||
const extraMethods = {
|
||||
|
||||
_getInscriptionById: (id) => {
|
||||
return models.EventInscription.scope('includeEventAndVenue').findOne({
|
||||
@ -168,25 +168,10 @@ const extraMethods = {
|
||||
});
|
||||
},
|
||||
|
||||
_addMember: (marketingListId, user, inscription, reservation) => {
|
||||
_addMember: (marketingListId, member) => {
|
||||
|
||||
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasddddddmemberrrrr1');
|
||||
console.log(user, reservation);
|
||||
|
||||
var member = {
|
||||
marketing_memberId: null,
|
||||
email: user.email,
|
||||
name: user.name,
|
||||
surname: user.surname,
|
||||
source: inscription.source,
|
||||
reservation_code: (reservation) ? reservation.reservation_code : null,
|
||||
code_ticket: inscription.code_ticket,
|
||||
validated: inscription.validated,
|
||||
color: (reservation) ? reservation.color : 'white',
|
||||
description: (reservation) ? reservation.description : 'entrada libre',
|
||||
entity: (reservation) ? reservation.Entity.name : user.entityId,
|
||||
userId: user.id
|
||||
}
|
||||
// console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasddddddmemberrrrr1');
|
||||
// console.log(member);
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
if (!marketingListId) { // || !member.validated) {
|
||||
@ -194,8 +179,7 @@ const extraMethods = {
|
||||
} else {
|
||||
marketing.addMember(marketingListId, member)
|
||||
.then(function (result) {
|
||||
member.marketing_memberId = result.ID;
|
||||
resolve(member);
|
||||
resolve(result.ID);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user