feat: create blacklist page
This commit is contained in:
parent
8a9de5d185
commit
fd6f1a2fe0
9 changed files with 446 additions and 14 deletions
|
|
@ -1,22 +1,52 @@
|
|||
const db = require('./db')
|
||||
|
||||
function blocked (address, cryptoCode) {
|
||||
const sql = `select * from blacklist where address = $1 and crypto_code = $2`
|
||||
return db.any(sql, [
|
||||
address,
|
||||
cryptoCode
|
||||
])
|
||||
// Get all blacklist rows from the DB "blacklist" table
|
||||
const getBlacklist = () => {
|
||||
return db.any('select * from blacklist').then(res =>
|
||||
res.map(item => ({
|
||||
cryptoCode: item.crypto_code,
|
||||
address: item.address,
|
||||
createdByOperator: item.created_by_operator
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
function addToUsedAddresses (address, cryptoCode) {
|
||||
// Delete row from blacklist table by crypto code and address
|
||||
const deleteFromBlacklist = (cryptoCode, address) => {
|
||||
return db.none(
|
||||
'delete from blacklist where crypto_code = $1 and address = $2;',
|
||||
[cryptoCode, address]
|
||||
)
|
||||
}
|
||||
|
||||
const insertIntoBlacklist = (cryptoCode, address) => {
|
||||
return db
|
||||
.any(
|
||||
'insert into blacklist(crypto_code, address, created_by_operator) values($1, $2, $3);',
|
||||
[cryptoCode, address, true]
|
||||
)
|
||||
.then(() => {
|
||||
return { cryptoCode, address }
|
||||
})
|
||||
}
|
||||
|
||||
function blocked(address, cryptoCode) {
|
||||
const sql = `select * from blacklist where address = $1 and crypto_code = $2`
|
||||
return db.any(sql, [address, cryptoCode])
|
||||
}
|
||||
|
||||
function addToUsedAddresses(address, cryptoCode) {
|
||||
// ETH reuses addresses
|
||||
if (cryptoCode === 'ETH') return Promise.resolve()
|
||||
|
||||
const sql = `insert into blacklist(crypto_code, address, created_by_operator) values ($1, $2, 'f')`
|
||||
return db.oneOrNone(sql, [
|
||||
cryptoCode,
|
||||
address
|
||||
])
|
||||
return db.oneOrNone(sql, [cryptoCode, address])
|
||||
}
|
||||
|
||||
module.exports = { blocked, addToUsedAddresses }
|
||||
module.exports = {
|
||||
blocked,
|
||||
addToUsedAddresses,
|
||||
getBlacklist,
|
||||
deleteFromBlacklist,
|
||||
insertIntoBlacklist
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ const { machineAction } = require('../machines')
|
|||
const logs = require('../../logs')
|
||||
const settingsLoader = require('../../new-settings-loader')
|
||||
const tokenManager = require('../../token-manager')
|
||||
const blacklist = require('../../blacklist')
|
||||
|
||||
const serverVersion = require('../../../package.json').version
|
||||
|
||||
|
|
@ -18,7 +19,13 @@ const funding = require('../funding')
|
|||
const supervisor = require('../supervisor')
|
||||
const serverLogs = require('../server-logs')
|
||||
const pairing = require('../pairing')
|
||||
const { accounts: accountsConfig, coins, countries, currencies, languages } = require('../config')
|
||||
const {
|
||||
accounts: accountsConfig,
|
||||
coins,
|
||||
countries,
|
||||
currencies,
|
||||
languages
|
||||
} = require('../config')
|
||||
|
||||
const typeDefs = gql`
|
||||
scalar JSON
|
||||
|
|
@ -192,7 +199,7 @@ const typeDefs = gql`
|
|||
customerId: ID
|
||||
txVersion: Int!
|
||||
termsAccepted: Boolean
|
||||
commissionPercentage: String
|
||||
commissionPercentage: String
|
||||
rawTickerPrice: String
|
||||
isPaperWallet: Boolean
|
||||
customerPhone: String
|
||||
|
|
@ -206,6 +213,12 @@ const typeDefs = gql`
|
|||
machineName: String
|
||||
}
|
||||
|
||||
type Blacklist {
|
||||
createdByOperator: Boolean!
|
||||
cryptoCode: String!
|
||||
address: String!
|
||||
}
|
||||
|
||||
type Query {
|
||||
countries: [Country]
|
||||
currencies: [Currency]
|
||||
|
|
@ -226,6 +239,7 @@ const typeDefs = gql`
|
|||
transactionsCsv(from: Date, until: Date, limit: Int, offset: Int): String
|
||||
accounts: JSONObject
|
||||
config: JSONObject
|
||||
blacklist: [Blacklist]
|
||||
userTokens: [UserToken]
|
||||
}
|
||||
|
||||
|
|
@ -246,6 +260,8 @@ const typeDefs = gql`
|
|||
createPairingTotem(name: String!): String
|
||||
saveAccounts(accounts: JSONObject): JSONObject
|
||||
revokeToken(token: String!): UserToken
|
||||
deleteBlacklistRow(cryptoCode: String, address: String): Blacklist
|
||||
insertBlacklistRow(cryptoCode: String!, address: String!): Blacklist
|
||||
}
|
||||
`
|
||||
|
||||
|
|
@ -285,6 +301,7 @@ const resolvers = {
|
|||
transactions.batch(from, until, limit, offset).then(parseAsync),
|
||||
config: () => settingsLoader.loadLatestConfigOrNone(),
|
||||
accounts: () => settingsLoader.loadAccounts(),
|
||||
blacklist: () => blacklist.getBlacklist(),
|
||||
userTokens: () => tokenManager.getTokenList()
|
||||
},
|
||||
Mutation: {
|
||||
|
|
@ -297,6 +314,10 @@ const resolvers = {
|
|||
notify()
|
||||
return it
|
||||
}),
|
||||
deleteBlacklistRow: (...[, { cryptoCode, address }]) =>
|
||||
blacklist.deleteFromBlacklist(cryptoCode, address),
|
||||
insertBlacklistRow: (...[, { cryptoCode, address }]) =>
|
||||
blacklist.insertIntoBlacklist(cryptoCode, address),
|
||||
revokeToken: (...[, { token }]) => tokenManager.revokeToken(token)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue