a
This commit is contained in:
parent
ae2589c04f
commit
e466493584
134
helpers/mailchimp.helper.js
Normal file
134
helpers/mailchimp.helper.js
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
const Mailchimp = require('mailchimp-api-v3');
|
||||||
|
const mailchimp_key = "7d4ffd805bdb43a34f0806c0d2970e73-us3";
|
||||||
|
//moment = require('moment'),
|
||||||
|
// _ = require('lodash'),
|
||||||
|
// conf = require('../conf');
|
||||||
|
|
||||||
|
//var logger = require("../helpers/logger");
|
||||||
|
|
||||||
|
const mailchimp = new Mailchimp(mailchimp_key);
|
||||||
|
|
||||||
|
|
||||||
|
function getLists() {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
console.log('voy a llamar a la API');
|
||||||
|
mailchimp.get('/lists', {
|
||||||
|
fields: 'lists.id,lists.name',
|
||||||
|
sort_field: 'date_created',
|
||||||
|
sort_dir: 'DESC',
|
||||||
|
since_date_created: moment("2019-02-14").format("YYYY-MM-DD"),
|
||||||
|
})
|
||||||
|
.then(function (results) {
|
||||||
|
resolve(results.lists);
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
|
||||||
|
function getMembers(listId) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
logger.debug('getMembers => ', '/lists/' + listId + '/members');
|
||||||
|
mailchimp.get('/lists/' + listId + '/members', {
|
||||||
|
fields: 'members.id,members.email_address,members.merge_fields',
|
||||||
|
})
|
||||||
|
.then(function (results) {
|
||||||
|
resolve(results.members);
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMember(listId, data) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
logger.debug('getMember => ', '/search-members', listId, ' email: ' + data.email);
|
||||||
|
mailchimp.get('/search-members', {
|
||||||
|
list_id: listId,
|
||||||
|
query: data.email,
|
||||||
|
fields: ['email_address'],
|
||||||
|
})
|
||||||
|
.then(function (results) {
|
||||||
|
if (results && results.exact_matches && (results.exact_matches.total_items == 1)) {
|
||||||
|
logger.debug('getMember => ', results.exact_matches.members[0].id);
|
||||||
|
resolve(results.exact_matches.members[0]);
|
||||||
|
}
|
||||||
|
else reject();
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
function addMember(listId, member) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
// logger.debug('addMember => ', '/lists/' + listId + '/members', ' email: ' + member.email);
|
||||||
|
console.log('addMember => ', '/lists/' + listId + '/members', ' email: ' + member.email);
|
||||||
|
|
||||||
|
|
||||||
|
var member2 = {
|
||||||
|
EMAIL: member.email,
|
||||||
|
FNAME: member.name,
|
||||||
|
LNAME: member.surname,
|
||||||
|
SOURCE: member.source,
|
||||||
|
RESERCODE: member.reservation_code,
|
||||||
|
TICKETCODE: member.code_ticket,
|
||||||
|
VALIDATED: member.validated,
|
||||||
|
COLOR: member.color,
|
||||||
|
DESCOLOR: member.description,
|
||||||
|
ENTITYNAME: member.entityId,
|
||||||
|
USERID: member.userId
|
||||||
|
}
|
||||||
|
|
||||||
|
mailchimp.post('/lists/' + listId + '/members', {
|
||||||
|
email_address: member2.EMAIL,
|
||||||
|
merge_fields: member2,
|
||||||
|
status: 'subscribed'
|
||||||
|
})
|
||||||
|
.then(function (results) {
|
||||||
|
console.log('addMember => ', member.EMAIL, results.id, results.statusCode);
|
||||||
|
resolve(results);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log('addMember => ', error.title, error.status);
|
||||||
|
if ((error.status == 400) && (error.title == 'Member Exists')) {
|
||||||
|
resolve(getMember(listId, member));
|
||||||
|
} else {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
function deleteMember(listId, memberId) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
logger.debug('deleteMember => ', '/lists/' + listId + '/members/' + memberId);
|
||||||
|
mailchimp.delete('/lists/' + listId + '/members/' + memberId)
|
||||||
|
.then(function (results) {
|
||||||
|
resolve(results);
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
if (error.status == 404) { // Miembro no existe
|
||||||
|
resolve({})
|
||||||
|
} else {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
module.exports.getLists = getLists;
|
||||||
|
//module.exports.getMembers = getMembers;
|
||||||
|
module.exports.addMember = addMember;
|
||||||
|
//module.exports.deleteMember = deleteMember;
|
||||||
@ -334,8 +334,22 @@ console.log('actualizo confirmados de la nueva reserva');
|
|||||||
return handleErrorResponse(MODULE_NAME, 'createInscription', error, res);
|
return handleErrorResponse(MODULE_NAME, 'createInscription', error, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const marketingListOfInscription = dataInscription.event.marketing_list;
|
||||||
|
/*
|
||||||
|
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;
|
||||||
|
*/
|
||||||
|
eventInscriptionService._addMember(marketingListOfInscription, dataUser.userResult.user, dataInscription.inscription, dataInscription.reservation)
|
||||||
return handleResultResponse(await dataInscription.inscription.toJSON(), null, params, res, httpStatus.CREATED)
|
return handleResultResponse(await dataInscription.inscription.toJSON(), null, params, res, httpStatus.CREATED)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (invitationCode) {
|
if (invitationCode) {
|
||||||
_getLevelAndPartner()
|
_getLevelAndPartner()
|
||||||
|
|||||||
@ -5,6 +5,7 @@ const _ = require('lodash');
|
|||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
const marketing = require('../../helpers/mailchimp.helper')
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
|
|
||||||
@ -109,6 +110,45 @@ console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<valores de la inscripcion');
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_addMember: (marketingListId, user, inscription, reservation) => {
|
||||||
|
|
||||||
|
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasddddddmemberrrrr1');
|
||||||
|
console.log(user);
|
||||||
|
|
||||||
|
|
||||||
|
var member = {
|
||||||
|
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',
|
||||||
|
entityId: (reservation) ? reservation.entityId : user.entityId,
|
||||||
|
userId: user.id
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasddddddmemberrrrr1');
|
||||||
|
console.log(marketingListId, member.validated);
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
if (!marketingListId || !member.validated) {
|
||||||
|
resolve(member)
|
||||||
|
} else {
|
||||||
|
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasddddddmemberrrrr2');
|
||||||
|
marketing.addMember(marketingListId, member)
|
||||||
|
.then(function (result) {
|
||||||
|
member = result;
|
||||||
|
resolve(member);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
reject(error)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -12,14 +12,7 @@ const venueController = require('./venue.controller');
|
|||||||
|
|
||||||
routes.get('/venues',
|
routes.get('/venues',
|
||||||
//SortMiddleware.middleware({ default: "name" }),
|
//SortMiddleware.middleware({ default: "name" }),
|
||||||
venueController.find({
|
venueController.find()
|
||||||
scopes: ['includeCountEvents']
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
routes.get('/venues',
|
|
||||||
//SortMiddleware.middleware({ default: "name" }),
|
|
||||||
venueController.find()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get('/venues/:id',
|
routes.get('/venues/:id',
|
||||||
|
|||||||
@ -57,6 +57,7 @@
|
|||||||
"sequelize": "^5.6.1",
|
"sequelize": "^5.6.1",
|
||||||
"vimeo": "^2.1.1",
|
"vimeo": "^2.1.1",
|
||||||
"vm": "^0.1.0",
|
"vm": "^0.1.0",
|
||||||
"winston": "^3.2.1"
|
"winston": "^3.2.1",
|
||||||
|
"mailchimp-api-v3": "^1.12.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user