Added initial support for trigger based automation

This commit is contained in:
Andris Reinman 2016-06-03 13:15:33 +03:00
parent cc1c70d57f
commit b16209f23e
36 changed files with 2025 additions and 263 deletions

View file

@ -11,32 +11,25 @@ let lists = require('./lists');
let log = require('npmlog');
let urllib = require('url');
let he = require('he');
module.exports.resolve = (campaignCid, linkCid, callback) => {
campaigns.getByCid(campaignCid, (err, campaign) => {
module.exports.resolve = (linkCid, callback) => {
db.getConnection((err, connection) => {
if (err) {
return callback(err);
}
if (!campaign) {
return callback('Campaign not found');
}
db.getConnection((err, connection) => {
let query = 'SELECT id, url FROM links WHERE `cid`=? LIMIT 1';
connection.query(query, [linkCid], (err, rows) => {
connection.release();
if (err) {
return callback(err);
}
let query = 'SELECT id, url FROM links WHERE `campaign`=? AND `cid`=? LIMIT 1';
connection.query(query, [campaign.id, linkCid], (err, rows) => {
connection.release();
if (err) {
return callback(err);
}
if (rows && rows.length) {
return callback(null, rows[0].id, rows[0].url);
}
if (rows && rows.length) {
return callback(null, rows[0].id, rows[0].url);
}
return callback(null, false);
});
return callback(null, false);
});
});
};
@ -46,6 +39,9 @@ module.exports.countClick = (remoteIp, campaignCid, listCid, subscriptionCid, li
if (err) {
return callback(err);
}
if(!data){
return callback(null, false);
}
db.getConnection((err, connection) => {
if (err) {
return callback(err);
@ -295,7 +291,9 @@ module.exports.updateLinks = (campaign, list, subscription, serviceUrl, message,
return replaceUrls();
}
module.exports.add(urlItem.value, campaign.id, (err, linkId, cid) => {
module.exports.add(he.decode(urlItem.value, {
isAttributeValue: true
}), campaign.id, (err, linkId, cid) => {
if (err) {
log.error('Link', err.stack);
return storeNext();