Do not delete url pointers from database when resetting campaign

This commit is contained in:
Andris Reinman 2016-06-09 09:53:38 +03:00
parent f7617ec06e
commit 06aea61827
4 changed files with 41 additions and 52 deletions

View file

@ -728,27 +728,19 @@ module.exports.delete = (id, callback) => {
}
connection.query('DELETE FROM campaigns WHERE id=? LIMIT 1', [id], (err, result) => {
connection.release();
if (err) {
connection.release();
return callback(err);
}
let affected = result && result.affectedRows || 0;
connection.query('DELETE FROM links WHERE campaign=?', [id], err => {
connection.release();
removeCampaignTables(id, err => {
if (err) {
return callback(err);
}
removeCampaignTables(id, err => {
if (err) {
return callback(err);
}
caches.cache.delete('sender queue');
return callback(null, affected);
});
caches.cache.delete('sender queue');
return callback(null, affected);
});
});
});
@ -841,7 +833,7 @@ module.exports.reset = (id, callback) => {
}
caches.cache.delete('sender queue');
connection.query('DELETE FROM links WHERE campaign=?', [id], err => {
connection.query('UPDATE links SET `clicks`=0 WHERE campaign=?', [id], err => {
if (err) {
connection.release();
return callback(err);

View file

@ -13,31 +13,23 @@ 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(null, false);
}
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);
});
});
};
@ -47,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);