82 lines
No EOL
1.9 KiB
JavaScript
82 lines
No EOL
1.9 KiB
JavaScript
'use strict';
|
|
|
|
let _ = require('./translate')._;
|
|
|
|
module.exports = {
|
|
getDefaultMergeTags,
|
|
getRSSMergeTags,
|
|
enforce,
|
|
cleanupFromPost,
|
|
filterObject
|
|
};
|
|
|
|
function getDefaultMergeTags() {
|
|
return [{
|
|
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: '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 getRSSMergeTags() {
|
|
return [{
|
|
key: 'RSS_ENTRY',
|
|
value: _('content from an RSS entry')
|
|
}, {
|
|
key: 'RSS_ENTRY_TITLE',
|
|
value: _('RSS entry title')
|
|
}, {
|
|
key: 'RSS_ENTRY_DATE',
|
|
value: _('RSS entry date')
|
|
}, {
|
|
key: 'RSS_ENTRY_LINK',
|
|
value: _('RSS entry link')
|
|
}, {
|
|
key: 'RSS_ENTRY_CONTENT',
|
|
value: _('content from an RSS entry')
|
|
}, {
|
|
key: 'RSS_ENTRY_SUMMARY',
|
|
value: _('RSS entry summary')
|
|
}, {
|
|
key: 'RSS_ENTRY_IMAGE_URL',
|
|
value: _('RSS entry image URL')
|
|
}];
|
|
}
|
|
|
|
function enforce(condition, message) {
|
|
if (!condition) {
|
|
throw new Error(message);
|
|
}
|
|
}
|
|
|
|
function cleanupFromPost(value) {
|
|
return (value || '').toString().trim();
|
|
}
|
|
|
|
function filterObject(obj, allowedKeys) {
|
|
const result = {};
|
|
for (const key in obj) {
|
|
if (allowedKeys.has(key)) {
|
|
result[key] = obj[key];
|
|
}
|
|
}
|
|
|
|
return result;
|
|
} |