fix: remove sanction loader middleware
This commit is contained in:
parent
c77fda2623
commit
d76e84428f
4 changed files with 30 additions and 37 deletions
|
|
@ -20,7 +20,7 @@ const { typeDefs, resolvers } = require('./graphql/schema')
|
||||||
const findOperatorId = require('../middlewares/operatorId')
|
const findOperatorId = require('../middlewares/operatorId')
|
||||||
const computeSchema = require('../compute-schema')
|
const computeSchema = require('../compute-schema')
|
||||||
const { USER_SESSIONS_CLEAR_INTERVAL } = require('../constants')
|
const { USER_SESSIONS_CLEAR_INTERVAL } = require('../constants')
|
||||||
const { session, cleanUserSessions, buildApolloContext, loadSanctionLists } = require('./middlewares')
|
const { session, cleanUserSessions, buildApolloContext } = require('./middlewares')
|
||||||
|
|
||||||
const devMode = require('minimist')(process.argv.slice(2)).dev
|
const devMode = require('minimist')(process.argv.slice(2)).dev
|
||||||
|
|
||||||
|
|
@ -48,7 +48,6 @@ app.use(express.static(path.resolve(__dirname, '..', '..', 'public')))
|
||||||
app.use(cleanUserSessions(USER_SESSIONS_CLEAR_INTERVAL))
|
app.use(cleanUserSessions(USER_SESSIONS_CLEAR_INTERVAL))
|
||||||
app.use(computeSchema)
|
app.use(computeSchema)
|
||||||
app.use(findOperatorId)
|
app.use(findOperatorId)
|
||||||
app.use(loadSanctionLists)
|
|
||||||
app.use(session)
|
app.use(session)
|
||||||
app.use(graphqlUploadExpress())
|
app.use(graphqlUploadExpress())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,37 @@
|
||||||
const _ = require('lodash/fp')
|
const _ = require('lodash/fp')
|
||||||
|
const logger = require('../../../logger')
|
||||||
const ofac = require('../../../ofac')
|
const ofac = require('../../../ofac')
|
||||||
|
const T = require('../../../time')
|
||||||
|
|
||||||
|
const sanctionStatus = {
|
||||||
|
loaded: false,
|
||||||
|
timestamp: null
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadOrUpdateSanctions = () => {
|
||||||
|
if (!sanctionStatus.loaded || (sanctionStatus.timestamp && Date.now() > sanctionStatus.timestamp + T.minute)) {
|
||||||
|
logger.info('No sanction lists loaded. Loading sanctions...')
|
||||||
|
return ofac.load()
|
||||||
|
.then(() => {
|
||||||
|
logger.info('OFAC sanction list loaded!')
|
||||||
|
sanctionStatus.loaded = true
|
||||||
|
sanctionStatus.timestamp = Date.now()
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
logger.error('Couldn\'t load OFAC sanction list!')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.resolve()
|
||||||
|
}
|
||||||
|
|
||||||
const resolvers = {
|
const resolvers = {
|
||||||
Query: {
|
Query: {
|
||||||
checkAgainstSanctions: (...[, { firstName, lastName, birthdate }]) => {
|
checkAgainstSanctions: (...[, { firstName, lastName, birthdate }]) => loadOrUpdateSanctions()
|
||||||
const ofacMatches = ofac.match({ firstName, lastName }, birthdate, { threshold: 0.85, fullNameThreshold: 0.95, debug: false })
|
.then(() => {
|
||||||
|
const ofacMatches = ofac.match({ firstName, lastName }, birthdate, { threshold: 0.85, fullNameThreshold: 0.95, debug: false })
|
||||||
return { ofacSanctioned: _.size(ofacMatches) > 0 }
|
return { ofacSanctioned: _.size(ofacMatches) > 0 }
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
const cleanUserSessions = require('./cleanUserSessions')
|
const cleanUserSessions = require('./cleanUserSessions')
|
||||||
const buildApolloContext = require('./context')
|
const buildApolloContext = require('./context')
|
||||||
const loadSanctionLists = require('./loadSanctionLists')
|
|
||||||
const session = require('./session')
|
const session = require('./session')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
cleanUserSessions,
|
cleanUserSessions,
|
||||||
buildApolloContext,
|
buildApolloContext,
|
||||||
loadSanctionLists,
|
|
||||||
session
|
session
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
const logger = require('../../logger')
|
|
||||||
const sanctions = require('../../ofac')
|
|
||||||
|
|
||||||
const sanctionStatus = {
|
|
||||||
loaded: false,
|
|
||||||
timestamp: null
|
|
||||||
}
|
|
||||||
|
|
||||||
const loadSanctionLists = (req, res, next) => {
|
|
||||||
if (!sanctionStatus.loaded) {
|
|
||||||
logger.info('No sanction lists loaded. Loading sanctions...')
|
|
||||||
return sanctions.load()
|
|
||||||
.then(() => {
|
|
||||||
logger.info('OFAC sanction list loaded!')
|
|
||||||
sanctionStatus.loaded = true
|
|
||||||
sanctionStatus.timestamp = Date.now()
|
|
||||||
return next()
|
|
||||||
})
|
|
||||||
.catch(e => {
|
|
||||||
logger.error('Couldn\'t load OFAC sanction list!')
|
|
||||||
return next(e)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return next()
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = loadSanctionLists
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue