v12.0.0 - initial commit
This commit is contained in:
commit
e2c49ea43c
1145 changed files with 97211 additions and 0 deletions
84
packages/server/lib/compliance-triggers.js
Normal file
84
packages/server/lib/compliance-triggers.js
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
const uuid = require('uuid')
|
||||
const {
|
||||
db: { default: db },
|
||||
complianceTriggers,
|
||||
} = require('typesafe-db')
|
||||
|
||||
const maxDaysThreshold = triggers =>
|
||||
Math.max(...[{ thresholdDays: 0 }].concat(triggers).map(t => t.thresholdDays))
|
||||
|
||||
const getCashLimit = triggers =>
|
||||
Math.min(
|
||||
...triggers.flatMap(({ triggerType, requirementType, threshold }) => {
|
||||
const withFiat = ['txVolume', 'txAmount'].includes(triggerType)
|
||||
const blocking = ['block', 'suspend'].includes(requirementType)
|
||||
return withFiat && blocking && threshold ? [threshold] : []
|
||||
}),
|
||||
) || Infinity
|
||||
|
||||
const hasRequirement = requirementType => triggers =>
|
||||
triggers.some(t => t.requirementType === requirementType)
|
||||
|
||||
const hasPhone = hasRequirement('sms')
|
||||
const hasFacephoto = hasRequirement('facephoto')
|
||||
const hasIdScan = hasRequirement('idCardData')
|
||||
const hasSanctions = hasRequirement('sanctions')
|
||||
|
||||
const AUTH_METHODS = {
|
||||
SMS: 'SMS',
|
||||
EMAIL: 'EMAIL',
|
||||
}
|
||||
|
||||
const getComplianceTriggerSets = () =>
|
||||
complianceTriggers.getComplianceTriggerSets(db)
|
||||
|
||||
const getComplianceTriggerSetById = id =>
|
||||
complianceTriggers.getComplianceTriggerSetById(db, id)
|
||||
|
||||
const getComplianceTriggers = complianceTriggerSetId =>
|
||||
complianceTriggers.getComplianceTriggers(db, complianceTriggerSetId)
|
||||
|
||||
const createComplianceTriggerSet = name =>
|
||||
complianceTriggers.createComplianceTriggerSet(db, uuid.v4(), name)
|
||||
|
||||
const deleteComplianceTriggerSet = id =>
|
||||
complianceTriggers.deleteComplianceTriggerSet(db, id)
|
||||
|
||||
const createComplianceTrigger = (complianceTriggerSetId, trigger) =>
|
||||
complianceTriggers.createComplianceTrigger(
|
||||
db,
|
||||
complianceTriggerSetId,
|
||||
trigger,
|
||||
)
|
||||
|
||||
const deleteComplianceTrigger = id =>
|
||||
complianceTriggers.deleteComplianceTrigger(db, id)
|
||||
|
||||
const deleteComplianceTriggersByCustomInfoRequestId = customInfoRequestId =>
|
||||
complianceTriggers.deleteComplianceTriggersByCustomInfoRequestId(
|
||||
db,
|
||||
customInfoRequestId,
|
||||
)
|
||||
|
||||
const getAllComplianceTriggers = (dbOrTx = db) =>
|
||||
complianceTriggers.getAllComplianceTriggers(dbOrTx)
|
||||
|
||||
module.exports = {
|
||||
getAllComplianceTriggers,
|
||||
hasSanctions,
|
||||
maxDaysThreshold,
|
||||
getCashLimit,
|
||||
hasPhone,
|
||||
hasFacephoto,
|
||||
hasIdScan,
|
||||
AUTH_METHODS,
|
||||
|
||||
getComplianceTriggerSets,
|
||||
getComplianceTriggerSetById,
|
||||
getComplianceTriggers,
|
||||
createComplianceTriggerSet,
|
||||
deleteComplianceTriggerSet,
|
||||
createComplianceTrigger,
|
||||
deleteComplianceTrigger,
|
||||
deleteComplianceTriggersByCustomInfoRequestId,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue