Include campaign links in form fields

This commit is contained in:
Andris Reinman 2016-04-26 20:29:57 +03:00
parent e4c71f4026
commit 43b1f1e319
2 changed files with 20 additions and 9 deletions

View file

@ -15,7 +15,8 @@ module.exports = {
createSlug,
updateMenu,
validateEmail,
formatMessage
formatMessage,
getMessageLinks
};
function toDbKey(key) {
@ -147,17 +148,23 @@ function validateEmail(address, checkBlocked, callback) {
});
}
function getMessageLinks(serviceUrl, campaign, list, subscription) {
return {
LINK_UNSUBSCRIBE: urllib.resolve(serviceUrl, '/subscription/' + list.cid + '/unsubscribe/' + subscription.cid + '?auto=yes&c=' + campaign.cid),
LINK_PREFERENCES: urllib.resolve(serviceUrl, '/subscription/' + list.cid + '/manage/' + subscription.cid),
LINK_BROWSER: urllib.resolve(serviceUrl, '/archive/' + campaign.cid + '/' + list.cid + '/' + subscription.cid)
};
}
function formatMessage(serviceUrl, campaign, list, subscription, message, filter) {
filter = typeof filter === 'function' ? filter : (str => str);
let links = getMessageLinks(serviceUrl, campaign, list, subscription);
let getValue = key => {
switch ((key || '').toString().toUpperCase().trim()) {
case 'LINK_UNSUBSCRIBE':
return urllib.resolve(serviceUrl, '/subscription/' + list.cid + '/unsubscribe/' + subscription.cid + '?auto=yes&c=' + campaign.cid);
case 'LINK_PREFERENCES':
return urllib.resolve(serviceUrl, '/subscription/' + list.cid + '/manage/' + subscription.cid);
case 'LINK_BROWSER':
return urllib.resolve(serviceUrl, '/archive/' + campaign.cid + '/' + list.cid + '/' + subscription.cid);
key = (key || '').toString().toUpperCase().trim();
if (links.hasOwnProperty(key)) {
return links[key];
}
if (subscription.mergeTags.hasOwnProperty(key)) {
return subscription.mergeTags[key];