This commit is contained in:
Andris Reinman 2016-05-04 19:11:41 +03:00
parent ab988837fe
commit 84869dafa7
7 changed files with 81 additions and 34 deletions

View file

@ -10,6 +10,7 @@ let shortid = require('shortid');
let isUrl = require('is-url');
let feed = require('../feed');
let log = require('npmlog');
let mailer = require('../mailer');
let allowedKeys = ['description', 'from', 'address', 'subject', 'template', 'source_url', 'list', 'segment', 'html', 'text'];
@ -323,36 +324,44 @@ module.exports.create = (campaign, opts, callback) => {
return callback(err);
}
create((err, campaignId) => {
mailer.getTemplate('emails/rss-html.hbs', (err, rendererHtml) => {
if (err) {
return callback(err);
}
if (!campaignId || !entries.length) {
return callback(null, campaignId);
}
db.getConnection((err, connection) => {
campaign.html = rendererHtml();
create((err, campaignId) => {
if (err) {
return callback(err);
}
if (!campaignId || !entries.length) {
return callback(null, campaignId);
}
// store references to already existing feed entries
// this is needed to detect new entries
let query = 'INSERT IGNORE INTO `rss` (`parent`,`guid`,`pubdate`) VALUES ' + entries.map(() => '(?,?,?)').join(',');
values = [];
entries.forEach(entry => {
values.push(campaignId, entry.guid, entry.date);
});
connection.query(query, values, err => {
connection.release();
db.getConnection((err, connection) => {
if (err) {
// too late to report as failed
log.error('RSS', err);
return callback(err);
}
return callback(null, campaignId);
// store references to already existing feed entries
// this is needed to detect new entries
let query = 'INSERT IGNORE INTO `rss` (`parent`,`guid`,`pubdate`) VALUES ' + entries.map(() => '(?,?,?)').join(',');
values = [];
entries.forEach(entry => {
values.push(campaignId, entry.guid, entry.date);
});
connection.query(query, values, err => {
connection.release();
if (err) {
// too late to report as failed
log.error('RSS', err);
}
return callback(null, campaignId);
});
});
});
});