feat: add advanced address blacklisting

This commit is contained in:
Sérgio Salgado 2022-10-06 17:18:12 +01:00 committed by Rafael
parent 473bb15c24
commit 8af7c97c16
7 changed files with 367 additions and 66 deletions

View file

@ -1,16 +1,16 @@
const _ = require('lodash/fp')
const db = require('./db')
const notifierQueries = require('./notifier/queries')
// Get all blacklist rows from the DB "blacklist" table that were manually inserted by the operator
const getBlacklist = () => {
return db.any(`SELECT * FROM blacklist`).then(res =>
res.map(item => ({
address: item.address
}))
)
const blacklistSql = `SELECT * FROM blacklist`
const messagesSql = `SELECT * FROM blacklist_messages`
return Promise.all([db.any(blacklistSql), db.any(messagesSql)])
.then(([blacklist, messages]) => Promise.all([_.map(_.mapKeys(_.camelCase), blacklist), _.map(_.mapKeys(_.camelCase), messages)]))
.then(([blacklist, messages]) => _.map(it => ({ ...it, blacklistMessage: _.find(ite => it.blacklistMessageId === ite.id, messages) }), blacklist))
}
// Delete row from blacklist table by crypto code and address
const deleteFromBlacklist = address => {
const sql = `DELETE FROM blacklist WHERE address = $1`
notifierQueries.clearBlacklistNotification(address)
@ -38,10 +38,22 @@ function addToUsedAddresses (address) {
return db.oneOrNone(sql, [address])
}
function getMessages () {
const sql = `SELECT * FROM blacklist_messages`
return db.any(sql)
}
function editBlacklistMessage (id, content) {
const sql = `UPDATE blacklist_messages SET content = $1 WHERE id = $2 RETURNING id`
return db.oneOrNone(sql, [content, id])
}
module.exports = {
blocked,
addToUsedAddresses,
getBlacklist,
deleteFromBlacklist,
insertIntoBlacklist
insertIntoBlacklist,
getMessages,
editBlacklistMessage
}