2017-03-04 20:50:44 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
let lists = require('./models/lists');
|
|
|
|
let fields = require('./models/fields');
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
getDefaultMergeTags,
|
2017-03-04 21:04:13 +00:00
|
|
|
getListMergeTags
|
2017-03-04 20:50:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
function getDefaultMergeTags(callback) {
|
|
|
|
// Using a callback for the sake of future-proofness
|
|
|
|
callback(null, [
|
|
|
|
{
|
|
|
|
key: 'LINK_UNSUBSCRIBE',
|
|
|
|
value: 'URL that points to the unsubscribe page'
|
|
|
|
}, {
|
|
|
|
key: 'LINK_PREFERENCES',
|
|
|
|
value: 'URL that points to the preferences page of the subscriber'
|
|
|
|
}, {
|
|
|
|
key: 'LINK_BROWSER',
|
|
|
|
value: 'URL to preview the message in a browser'
|
|
|
|
}, {
|
|
|
|
key: 'EMAIL',
|
|
|
|
value: 'Email address'
|
|
|
|
}, {
|
|
|
|
key: 'FIRST_NAME',
|
|
|
|
value: 'First name'
|
|
|
|
}, {
|
|
|
|
key: 'LAST_NAME',
|
|
|
|
value: 'Last name'
|
|
|
|
}, {
|
|
|
|
key: 'FULL_NAME',
|
|
|
|
value: 'Full name (first and last name combined)'
|
|
|
|
}, {
|
|
|
|
key: 'SUBSCRIPTION_ID',
|
|
|
|
value: 'Unique ID that identifies the recipient'
|
|
|
|
}, {
|
|
|
|
key: 'LIST_ID',
|
|
|
|
value: 'Unique ID that identifies the list used for this campaign'
|
|
|
|
}, {
|
|
|
|
key: 'CAMPAIGN_ID',
|
|
|
|
value: 'Unique ID that identifies current campaign'
|
|
|
|
}
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getListMergeTags(listId, callback) {
|
|
|
|
lists.get(listId, (err, list) => {
|
|
|
|
if (err) {
|
|
|
|
return callback(err);
|
|
|
|
}
|
|
|
|
if (!list) {
|
|
|
|
list = {
|
|
|
|
id: listId
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
fields.list(list.id, (err, fieldList) => {
|
|
|
|
if (err && !fieldList) {
|
|
|
|
fieldList = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
let mergeTags = [];
|
|
|
|
|
|
|
|
fieldList.forEach(field => {
|
|
|
|
mergeTags.push({
|
|
|
|
key: field.key,
|
|
|
|
value: field.name
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return callback(null, mergeTags);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|