Moved Merge Tag Helpers to helpers.js
… to satisfy ESLint top-level module scope.
This commit is contained in:
parent
d9c1d8e595
commit
8fdb2840c4
4 changed files with 81 additions and 75 deletions
76
lib/helpers.js
Normal file
76
lib/helpers.js
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
let lists = require('./models/lists');
|
||||||
|
let fields = require('./models/fields');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getDefaultMergeTags,
|
||||||
|
getListMergeTags,
|
||||||
|
};
|
||||||
|
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
72
lib/tools.js
72
lib/tools.js
|
@ -20,8 +20,6 @@ module.exports = {
|
||||||
formatMessage,
|
formatMessage,
|
||||||
getMessageLinks,
|
getMessageLinks,
|
||||||
prepareHtml,
|
prepareHtml,
|
||||||
getDefaultMergeTags,
|
|
||||||
getListMergeTags,
|
|
||||||
workers: new Set()
|
workers: new Set()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -224,73 +222,3 @@ function prepareHtml(html, callback) {
|
||||||
return callback(null, juice(preparedHtml));
|
return callback(null, juice(preparedHtml));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
|
||||||
let lists = require('./models/lists');
|
|
||||||
let fields = require('./models/fields');
|
|
||||||
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ let campaigns = require('../lib/models/campaigns');
|
||||||
let subscriptions = require('../lib/models/subscriptions');
|
let subscriptions = require('../lib/models/subscriptions');
|
||||||
let settings = require('../lib/models/settings');
|
let settings = require('../lib/models/settings');
|
||||||
let tools = require('../lib/tools');
|
let tools = require('../lib/tools');
|
||||||
|
let helpers = require('../lib/helpers');
|
||||||
let striptags = require('striptags');
|
let striptags = require('striptags');
|
||||||
let passport = require('../lib/passport');
|
let passport = require('../lib/passport');
|
||||||
let htmlescape = require('escape-html');
|
let htmlescape = require('escape-html');
|
||||||
|
@ -184,13 +185,13 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
|
||||||
view = 'campaigns/edit';
|
view = 'campaigns/edit';
|
||||||
}
|
}
|
||||||
|
|
||||||
tools.getDefaultMergeTags((err, defaultMergeTags) => {
|
helpers.getDefaultMergeTags((err, defaultMergeTags) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
req.flash('danger', err.message || err);
|
req.flash('danger', err.message || err);
|
||||||
return res.redirect('/');
|
return res.redirect('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
tools.getListMergeTags(campaign.list, (err, listMergeTags) => {
|
helpers.getListMergeTags(campaign.list, (err, listMergeTags) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
req.flash('danger', err.message || err);
|
req.flash('danger', err.message || err);
|
||||||
return res.redirect('/');
|
return res.redirect('/');
|
||||||
|
|
|
@ -6,6 +6,7 @@ let router = new express.Router();
|
||||||
let templates = require('../lib/models/templates');
|
let templates = require('../lib/models/templates');
|
||||||
let settings = require('../lib/models/settings');
|
let settings = require('../lib/models/settings');
|
||||||
let tools = require('../lib/tools');
|
let tools = require('../lib/tools');
|
||||||
|
let helpers = require('../lib/helpers');
|
||||||
let striptags = require('striptags');
|
let striptags = require('striptags');
|
||||||
let passport = require('../lib/passport');
|
let passport = require('../lib/passport');
|
||||||
let mailer = require('../lib/mailer');
|
let mailer = require('../lib/mailer');
|
||||||
|
@ -112,7 +113,7 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
tools.getDefaultMergeTags((err, defaultMergeTags) => {
|
helpers.getDefaultMergeTags((err, defaultMergeTags) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
req.flash('danger', err.message || err);
|
req.flash('danger', err.message || err);
|
||||||
return res.redirect('/templates');
|
return res.redirect('/templates');
|
||||||
|
|
Loading…
Reference in a new issue