WiP on mailers

This commit is contained in:
Tomas Bures 2018-04-29 18:13:40 +02:00
parent e97415c237
commit a4ee1534cc
46 changed files with 1263 additions and 529 deletions

View file

@ -0,0 +1,86 @@
'use strict';
let db = require('../db');
module.exports.get = (start, limit, search, callback) => {
db.getConnection((err, connection) => {
if (err) {
return callback(err);
}
search = '%' + search + '%';
connection.query('SELECT SQL_CALC_FOUND_ROWS `email` FROM blacklist WHERE `email` LIKE ? ORDER BY `email` LIMIT ? OFFSET ?', [search, limit, start], (err, rows) => {
if (err) {
return callback(err);
}
connection.query('SELECT FOUND_ROWS() AS total', (err, total) => {
connection.release();
if (err) {
return callback(err);
}
let emails = [];
rows.forEach(email => {
emails.push(email.email);
});
return callback(null, emails, total && total[0] && total[0].total);
});
});
});
};
module.exports.add = (email, callback) => {
db.getConnection((err, connection) => {
if (err) {
return callback(err);
}
connection.query('INSERT IGNORE INTO `blacklist` (`email`) VALUES(?)', email, err => {
if (err) {
return callback(err);
}
connection.release();
return callback(null, null);
});
});
};
module.exports.delete = (email, callback) => {
db.getConnection((err, connection) => {
if (err) {
return callback(err);
}
connection.query('DELETE FROM `blacklist` WHERE `email`=?', email, err => {
if (err) {
return callback(err);
}
connection.release();
return callback(null, null);
});
});
};
module.exports.isblacklisted = (email, callback) => {
db.getConnection((err, connection) => {
if (err) {
return callback(err);
}
connection.query('SELECT `email` FROM blacklist WHERE `email`=?', email, (err, rows) => {
if (err) {
return callback(err);
}
connection.release();
if (rows.length > 0) {
return callback(null, true);
} else {
return callback(null, false);
}
});
});
};