86 lines
2.4 KiB
JavaScript
86 lines
2.4 KiB
JavaScript
'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);
|
|
}
|
|
});
|
|
});
|
|
};
|