app2-api/modules/events/marketing_list.service.js
2022-02-23 19:27:58 +01:00

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,
};