Added option to schedule sending

This commit is contained in:
Andris Reinman 2016-04-26 15:18:41 +03:00
parent 2196503cae
commit e396219c03
6 changed files with 95 additions and 18 deletions

View file

@ -297,7 +297,7 @@ module.exports.delete = (id, callback) => {
});
};
module.exports.send = (id, callback) => {
module.exports.send = (id, scheduled, callback) => {
module.exports.get(id, false, (err, campaign) => {
if (err) {
return callback(err);
@ -312,8 +312,18 @@ module.exports.send = (id, callback) => {
return callback(err);
}
let query;
let values;
if (scheduled) {
query = 'UPDATE campaigns SET `status`=2, `scheduled`=?, `status_change`=NOW() WHERE id=? LIMIT 1';
values = [scheduled, id];
} else {
query = 'UPDATE campaigns SET `status`=2, `status_change`=NOW() WHERE id=? LIMIT 1';
values = [id];
}
// campaigns marked as status=2 should be picked up by the sending processes
connection.query('UPDATE campaigns SET `status`=2, `status_change`=NOW() WHERE id=? LIMIT 1', [id], err => {
connection.query(query, values, err => {
connection.release();
if (err) {
return callback(err);
@ -357,7 +367,7 @@ module.exports.reset = (id, callback) => {
return callback(err);
}
if (campaign.status !== 3) {
if (campaign.status !== 3 && !(campaign.status === 2 && campaign.scheduled > new Date())) {
return callback(null, false);
}