63 lines
2.8 KiB
JavaScript
63 lines
2.8 KiB
JavaScript
"use strict";
|
|
|
|
const eventInscriptionService = require("./events_inscriptions.service");
|
|
|
|
function generateMemberInscription2(user, datainscription) {
|
|
let memberInscription = null;
|
|
if (user && datainscription.inscription) {
|
|
memberInscription = {
|
|
marketing_memberId: null,
|
|
email: user.email,
|
|
name: user.name,
|
|
surname: user.surname,
|
|
source: datainscription.inscription.source,
|
|
event_name: datainscription.inscription.event ? datainscription.inscription.event.name : "N/A",
|
|
event_date: datainscription.inscription.event ? datainscription.inscription.event.init_date : "N/A",
|
|
reservation_code: datainscription.reservation ? datainscription.reservation.reservation_code : null,
|
|
date_inscription: 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").toUpperCase(),
|
|
entity: datainscription.reservation ? datainscription.reservation.Entity.name : user.entityId,
|
|
userId: user.id,
|
|
qrConfig: null,
|
|
qrCode: null,
|
|
};
|
|
}
|
|
return memberInscription;
|
|
}
|
|
|
|
async function _addMarketingList(dataUser, dataInscription) {
|
|
/*AHORA SE ALMACENA TODO EN UNA ÚNICA LISTA DE MAILCHIMP, QUE ES LA DEL EVENTO
|
|
(si en un futuro se quiere tener listas independientes, bastaría con tratarlo aqui los campos de marketinglist de la reserva ...)
|
|
if (dataInscription.inscription.reservationId)
|
|
marketingListOfInscription = dataInscription.reservation.marketingList
|
|
else if (dataInscription.inscription.overflowEventId)
|
|
marketingListOfInscription = (await _getEvent(dataInscription.inscription.overflowEventId)).marketingList;
|
|
else
|
|
marketingListOfInscription = dataInscription.event.marketingList;
|
|
*/
|
|
//Creamos objeto member para facilitar inserción en mailchimp y envio de correo
|
|
let member = generateMemberInscription2(dataUser.userResult.user, dataInscription);
|
|
//Meter esto en el servicio
|
|
//En este caso al ser una inscripcion recien creada hay que asignar los datos del evento desde el evento
|
|
//member.event_name = dataInscription.event.name;
|
|
//member.event_date = dataInscription.event.init_date;
|
|
|
|
try {
|
|
member.marketing_memberId = await eventInscriptionService._addMember(dataInscription.event.marketing_list, member);
|
|
eventInscriptionService._updateMarketingMemberOfInscription(
|
|
dataInscription.inscription.id,
|
|
member.marketing_memberId
|
|
);
|
|
return member;
|
|
} catch (error) {
|
|
console.log("No se ha podido añadir email a mailchimp");
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
addMarketingList: _addMarketingList,
|
|
};
|