Include campaign links in form fields
This commit is contained in:
parent
e4c71f4026
commit
43b1f1e319
2 changed files with 20 additions and 9 deletions
23
lib/tools.js
23
lib/tools.js
|
@ -15,7 +15,8 @@ module.exports = {
|
||||||
createSlug,
|
createSlug,
|
||||||
updateMenu,
|
updateMenu,
|
||||||
validateEmail,
|
validateEmail,
|
||||||
formatMessage
|
formatMessage,
|
||||||
|
getMessageLinks
|
||||||
};
|
};
|
||||||
|
|
||||||
function toDbKey(key) {
|
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) {
|
function formatMessage(serviceUrl, campaign, list, subscription, message, filter) {
|
||||||
filter = typeof filter === 'function' ? filter : (str => str);
|
filter = typeof filter === 'function' ? filter : (str => str);
|
||||||
|
|
||||||
|
let links = getMessageLinks(serviceUrl, campaign, list, subscription);
|
||||||
|
|
||||||
let getValue = key => {
|
let getValue = key => {
|
||||||
switch ((key || '').toString().toUpperCase().trim()) {
|
key = (key || '').toString().toUpperCase().trim();
|
||||||
case 'LINK_UNSUBSCRIBE':
|
if (links.hasOwnProperty(key)) {
|
||||||
return urllib.resolve(serviceUrl, '/subscription/' + list.cid + '/unsubscribe/' + subscription.cid + '?auto=yes&c=' + campaign.cid);
|
return links[key];
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
if (subscription.mergeTags.hasOwnProperty(key)) {
|
if (subscription.mergeTags.hasOwnProperty(key)) {
|
||||||
return subscription.mergeTags[key];
|
return subscription.mergeTags[key];
|
||||||
|
|
|
@ -228,9 +228,13 @@ function formatMessage(message, callback) {
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!campaign.template && campaign.templateUrl) {
|
if (!campaign.template && campaign.templateUrl) {
|
||||||
|
let form = tools.getMessageLinks(configItems.serviceUrl, campaign, list, message.subscription);
|
||||||
|
Object.keys(message.subscription.mergeTags).forEach(key => {
|
||||||
|
form[key] = message.subscription.mergeTags[key];
|
||||||
|
});
|
||||||
request.post({
|
request.post({
|
||||||
url: campaign.templateUrl,
|
url: campaign.templateUrl,
|
||||||
form: message.subscription.mergeTags
|
form
|
||||||
}, (err, httpResponse, body) => {
|
}, (err, httpResponse, body) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue