@mojaloop/central-ledger 9.2.2 → 15.1.3-snapshot.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +625 -204
- package/.env +3 -2
- package/.ncurc.yaml +9 -0
- package/.nvmrc +1 -1
- package/.versionrc +15 -0
- package/CHANGELOG.md +353 -0
- package/CODEOWNERS +31 -0
- package/Dockerfile +20 -14
- package/LICENSE.md +4 -4
- package/Onboarding.md +0 -7
- package/README.md +99 -22
- package/audit-resolve.json +136 -1
- package/config/default.json +82 -27
- package/docker/central-ledger/default.json +68 -21
- package/docker/ml-api-adapter/default.json +10 -1
- package/docker/wait-for/wait-for-objstore.sh +1 -6
- package/docker/wait-for/wait-for.env +1 -1
- package/docker-compose.integration.yml +8 -5
- package/docker-compose.yml +73 -16
- package/migrations/310203_transferParticipant-indexes.js +38 -0
- package/migrations/310503_participantLimit-indexes-composite.js +38 -0
- package/migrations/{400401_settlementWindowStateChange-indexes.js → 400401_settlmentWindowStateChange-indexes.js} +0 -0
- package/migrations/401301_settlementModel-indexes.js +2 -0
- package/migrations/500401_quote-hotfix-2719.js +58 -0
- package/migrations/500501_feature-fixSubIdRef.js +53 -0
- package/migrations/500601_party-2480.js +63 -0
- package/migrations/501001_quoteExtension-quote-service-174.js +46 -0
- package/migrations/501002_quoteExtension-2522.js +61 -0
- package/migrations/800101_feature-fixSubIdRef.js +90 -0
- package/migrations/910102_hotfix954.js +4 -1
- package/migrations/940100_quotePartyIdInfoExtension.js +52 -0
- package/migrations/940101_quotePartyIdInfoExtension-2522.js +64 -0
- package/migrations/950100_settlementContentAggregation-decimal184.js +40 -0
- package/migrations/950101_transferParticipantStateChange.js +46 -0
- package/migrations/950102_settlementModel-adjustPosition.js +42 -0
- package/migrations/950103_dropTransferParticipantStateChange.js +47 -0
- package/migrations/950104_settlementModel-settlementAccountTypeId.js +79 -0
- package/migrations/950106_unique_settlement_model_ledger_account_currency.js +38 -0
- package/migrations/950107_settlementWindowContent_foreign_settlementModel.js +60 -0
- package/package.json +99 -81
- package/scripts/_wait4_all.js +146 -0
- package/seeds/amountType.js +4 -6
- package/seeds/balanceOfPayments.js +4 -6
- package/seeds/bulkProcessingState.js +4 -6
- package/seeds/bulkTransferState.js +4 -6
- package/seeds/currency.js +4 -6
- package/seeds/endpointType.js +128 -7
- package/seeds/ledgerAccountType.js +11 -10
- package/seeds/ledgerEntryType.js +5 -7
- package/seeds/participant.js +4 -6
- package/seeds/participantLimitType.js +4 -6
- package/seeds/partyIdentifierType.js +4 -6
- package/seeds/partyType.js +4 -6
- package/seeds/settlementDelay.js +4 -6
- package/seeds/settlementGranularity.js +4 -6
- package/seeds/settlementInterchange.js +4 -6
- package/seeds/settlementState.js +4 -6
- package/seeds/settlementWindow1State.js +4 -6
- package/seeds/transactionInitiator.js +4 -6
- package/seeds/transactionInitiatorType.js +4 -6
- package/seeds/transactionScenario.js +4 -6
- package/seeds/transferParticipantRoleType.js +4 -6
- package/seeds/transferState.js +9 -6
- package/src/api/interface/swagger.json +728 -948
- package/src/api/ledgerAccountTypes/handler.js +55 -0
- package/src/api/ledgerAccountTypes/routes.js +63 -0
- package/src/api/metrics/handler.js +2 -2
- package/src/api/metrics/routes.js +1 -1
- package/src/api/participants/handler.js +43 -35
- package/src/api/participants/routes.js +13 -13
- package/src/api/root/routes.js +2 -2
- package/src/api/settlementModels/handler.js +9 -26
- package/src/api/settlementModels/routes.js +4 -4
- package/src/api/transactions/handler.js +46 -0
- package/src/api/transactions/routes.js +45 -0
- package/src/domain/bulkTransfer/index.js +6 -5
- package/src/domain/ledgerAccountTypes/index.js +58 -0
- package/src/domain/participant/index.js +55 -4
- package/src/domain/position/index.js +18 -2
- package/src/domain/settlement/index.js +39 -6
- package/src/domain/transactions/index.js +61 -0
- package/src/domain/transfer/index.js +22 -2
- package/src/domain/transfer/transform.js +3 -3
- package/src/handlers/admin/handler.js +24 -32
- package/src/handlers/bulk/fulfil/handler.js +89 -56
- package/src/handlers/bulk/get/handler.js +203 -0
- package/src/handlers/bulk/index.js +4 -1
- package/src/handlers/bulk/prepare/handler.js +30 -29
- package/src/handlers/bulk/processing/handler.js +61 -32
- package/src/handlers/bulk/shared/validator.js +13 -1
- package/src/handlers/index.js +18 -9
- package/src/handlers/positions/handler.js +67 -46
- package/src/handlers/register.js +7 -7
- package/src/handlers/timeouts/handler.js +9 -4
- package/src/handlers/transfers/handler.js +408 -182
- package/src/handlers/transfers/validator.js +41 -11
- package/src/lib/cache.js +8 -34
- package/src/lib/config.js +5 -7
- package/src/lib/enum.js +22 -22
- package/src/lib/enumCached.js +76 -0
- package/src/lib/healthCheck/subServiceHealth.js +2 -2
- package/src/lib/requestLogger.js +9 -9
- package/src/lib/urlParser.js +1 -1
- package/src/models/bulkTransfer/bulkTransfer.js +6 -6
- package/src/models/bulkTransfer/bulkTransferAssociation.js +3 -3
- package/src/models/bulkTransfer/bulkTransferDuplicateCheck.js +4 -4
- package/src/models/bulkTransfer/bulkTransferExtension.js +2 -2
- package/src/models/bulkTransfer/bulkTransferFulfilmentDuplicateCheck.js +4 -4
- package/src/models/bulkTransfer/bulkTransferStateChange.js +7 -7
- package/src/models/bulkTransfer/facade.js +54 -3
- package/src/models/bulkTransfer/individualTransfer.js +2 -2
- package/src/models/ilpPackets/ilpPacket.js +36 -0
- package/src/models/ledgerAccountType/ledgerAccountType.js +139 -3
- package/src/models/misc/migrationLock.js +1 -1
- package/src/models/misc/segment.js +1 -1
- package/src/models/participant/facade.js +226 -76
- package/src/models/participant/participant.js +6 -5
- package/src/models/participant/participantCached.js +8 -0
- package/src/models/participant/participantCurrency.js +7 -7
- package/src/models/participant/participantCurrencyCached.js +11 -1
- package/src/models/participant/participantLimit.js +13 -13
- package/src/models/participant/participantLimitCached.js +124 -0
- package/src/models/participant/participantPosition.js +34 -5
- package/src/models/participant/participantPositionChange.js +10 -2
- package/src/models/position/facade.js +112 -18
- package/src/models/position/participantPosition.js +6 -6
- package/src/models/settlement/settlementModel.js +92 -17
- package/src/models/settlement/settlementModelCached.js +139 -0
- package/src/models/transfer/facade.js +97 -32
- package/src/models/transfer/ilpPacket.js +4 -4
- package/src/models/transfer/transfer.js +7 -7
- package/src/models/transfer/transferDuplicateCheck.js +21 -5
- package/src/models/transfer/transferError.js +5 -5
- package/src/models/transfer/transferErrorDuplicateCheck.js +4 -4
- package/src/models/transfer/transferExtension.js +4 -4
- package/src/models/transfer/transferFulfilment.js +5 -5
- package/src/models/transfer/transferFulfilmentDuplicateCheck.js +4 -4
- package/src/models/transfer/transferParticipant.js +3 -3
- package/src/models/transfer/transferStateChange.js +11 -11
- package/src/models/transfer/transferTimeout.js +5 -5
- package/src/schema/bulkTransfer.js +4 -4
- package/src/shared/plugins.js +10 -9
- package/src/shared/setup.js +69 -46
- package/test/integration/domain/participant/index.test.js +2 -0
- package/test/integration/handlers/handlers.test.js +605 -166
- package/test/integration/handlers/root.test.js +1 -1
- package/test/integration/helpers/hubAccounts.js +62 -0
- package/test/integration/helpers/ilpPacket.js +1 -1
- package/test/integration/helpers/participantFundsInOut.js +80 -0
- package/test/integration/helpers/participantLimit.js +6 -1
- package/test/integration/helpers/settlementModels.js +88 -0
- package/test/integration/helpers/testConsumer.js +163 -0
- package/test/integration/helpers/testProducer.js +0 -1
- package/test/integration/helpers/transferDuplicateCheck.js +1 -1
- package/test/integration/helpers/transferStateChange.js +1 -1
- package/test/integration/helpers/transferTestHelper.js +3 -5
- package/test/integration/models/transfer/transferStateChange.test.js +6 -0
- package/test/unit/api/ledgerAccountTypes/handler.test.js +126 -0
- package/test/unit/api/ledgerAccountTypes/routes.test.js +52 -0
- package/test/unit/api/participants/handler.test.js +75 -33
- package/test/unit/api/root/handler.test.js +1 -1
- package/test/unit/api/root/routes.test.js +2 -2
- package/test/unit/api/settlementModels/handler.test.js +21 -57
- package/test/unit/api/transactions/handler.test.js +108 -0
- package/test/unit/api/transactions/routes.test.js +38 -0
- package/test/unit/domain/ledgerAccountTypes/index.test.js +197 -0
- package/test/unit/domain/participant/index.test.js +115 -2
- package/test/unit/domain/settlement/index.test.js +199 -29
- package/test/unit/domain/transactions/index.test.js +128 -0
- package/test/unit/domain/transfer/index.test.js +1 -0
- package/test/unit/domain/transfer/transform.test.js +2 -0
- package/test/unit/handlers/admin/handler.test.js +5 -5
- package/test/unit/handlers/bulk/get/handler.test.js +401 -0
- package/test/unit/handlers/index.test.js +6 -0
- package/test/unit/handlers/positions/handler.test.js +26 -0
- package/test/unit/handlers/register.test.js +2 -0
- package/test/unit/handlers/transfers/handler.test.js +491 -36
- package/test/unit/handlers/transfers/validator.test.js +31 -31
- package/test/unit/lib/cache.test.js +0 -64
- package/test/unit/lib/cachingOfEnums.test.js +121 -0
- package/test/unit/lib/config.test.js +34 -0
- package/test/unit/lib/enum.test.js +6 -1
- package/test/unit/lib/enumCached.test.js +82 -0
- package/test/unit/lib/healthCheck/subServiceHealth.test.js +2 -0
- package/test/unit/lib/requestLogger.test.js +14 -12
- package/test/unit/models/ilpPackets/ilpPacket.test.js +89 -0
- package/test/unit/models/ledgerAccountType/ledgerAccountType.test.js +255 -6
- package/test/unit/models/misc/migrationLock.test.js +4 -0
- package/test/unit/models/misc/segment.test.js +5 -0
- package/test/unit/models/participant/facade.test.js +493 -54
- package/test/unit/models/participant/participant.test.js +4 -0
- package/test/unit/models/participant/participantCurrency.test.js +22 -9
- package/test/unit/models/participant/participantCurrencyCached.test.js +1 -1
- package/test/unit/models/participant/participantLimit.test.js +97 -0
- package/test/unit/models/participant/participantLimitCached.test.js +232 -0
- package/test/unit/models/participant/participantPosition.test.js +217 -0
- package/test/unit/models/participant/participantPositionChange.test.js +3 -0
- package/test/unit/models/position/facade.test.js +318 -29
- package/test/unit/models/position/participantPosition.test.js +22 -7
- package/test/unit/models/settlement/settlementModel.test.js +18 -37
- package/test/unit/models/settlement/settlementModelCached.test.js +171 -0
- package/test/unit/models/transfer/facade.test.js +115 -0
- package/test/unit/models/transfer/ilpPacket.test.js +28 -11
- package/test/unit/models/transfer/transfer.test.js +13 -4
- package/test/unit/models/transfer/transferDuplicateCheck.test.js +4 -0
- package/test/unit/models/transfer/transferError.test.js +5 -1
- package/test/unit/models/transfer/transferErrorDuplicateCheck.test.js +4 -0
- package/test/unit/models/transfer/transferExtension.test.js +26 -9
- package/test/unit/models/transfer/transferFulfilment.test.js +14 -5
- package/test/unit/models/transfer/transferFulfilmentDuplicateCheck.test.js +4 -0
- package/test/unit/models/transfer/transferParticipant.test.js +14 -5
- package/test/unit/models/transfer/transferStateChange.test.js +3 -0
- package/test/unit/models/transfer/transferTimeout.test.js +6 -0
- package/test/unit/seeds/amountType.test.js +6 -22
- package/test/unit/seeds/balanceOfPayments.test.js +6 -22
- package/test/unit/seeds/bulkProcessingState.test.js +84 -0
- package/test/unit/{lib/sidecar/nullClient.test.js → seeds/bulkTransferState.test.js} +36 -39
- package/test/unit/seeds/currency.test.js +6 -22
- package/test/unit/seeds/endpointType.test.js +6 -22
- package/test/unit/seeds/ledgerAccountType.test.js +5 -22
- package/test/unit/seeds/ledgerEntryType.test.js +6 -22
- package/test/unit/seeds/participant.test.js +5 -22
- package/test/unit/seeds/participantLimitType.test.js +6 -22
- package/test/unit/seeds/partyIdentifierType.test.js +6 -22
- package/test/unit/seeds/partyType.test.js +6 -22
- package/test/unit/seeds/settlementState.test.js +5 -22
- package/test/unit/seeds/settlementWindow1State.test.js +5 -22
- package/test/unit/seeds/transactionInitiator.test.js +6 -22
- package/test/unit/seeds/transactionInitiatorType.test.js +6 -22
- package/test/unit/seeds/transactionScenario.test.js +6 -22
- package/test/unit/seeds/transferParticipantRoleType.test.js +6 -22
- package/test/unit/seeds/transferState.test.js +6 -22
- package/test/unit/shared/plugins.test.js +31 -1
- package/test/unit/shared/setup.test.js +25 -36
- package/test/util/helpers.js +37 -2
- package/test/util/randomTransfers.js +1 -1
- package/test/util/scripts/env.sh +6 -5
- package/test/util/scripts/populateTestData.sh +204 -181
- package/test/util/scripts/populateTestDataForLegacySimulator.sh +261 -0
- package/test/util/scripts/restartObjStore.sh +1 -1
- package/test-integration.Dockerfile +15 -15
- package/test.Dockerfile +12 -12
- package/.circleci/_set_up_deploy_envs.sh +0 -47
- package/.dockerignore +0 -17
- package/.ncurc.json +0 -3
- package/server.sh +0 -4
- package/sonar-project.properties +0 -17
- package/src/lib/sidecar/index.js +0 -47
- package/src/lib/sidecar/nullClient.js +0 -18
- package/test/.env +0 -8
- package/test/integration-config.json +0 -367
- package/test/integration-runner.env +0 -31
- package/test/integration-runner.sh +0 -264
- package/test/spec-runner.sh +0 -132
- package/test/unit/lib/sidecar/index.test.js +0 -148
- package/test/unit/models/position/participantLimit.test.js +0 -135
|
@@ -30,25 +30,25 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
30
30
|
|
|
31
31
|
const getById = async (transferId) => {
|
|
32
32
|
try {
|
|
33
|
-
return await Db.transfer.findOne({ transferId
|
|
33
|
+
return await Db.from('transfer').findOne({ transferId })
|
|
34
34
|
} catch (err) {
|
|
35
35
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
const saveTransfer = async (record) => {
|
|
40
|
-
Logger.debug('save transfer' + record.toString())
|
|
40
|
+
Logger.isDebugEnabled && Logger.debug('save transfer' + record.toString())
|
|
41
41
|
try {
|
|
42
|
-
return Db.transfer.insert(record)
|
|
42
|
+
return Db.from('transfer').insert(record)
|
|
43
43
|
} catch (err) {
|
|
44
|
-
Logger.error(err)
|
|
44
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
45
45
|
throw err
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
const destroyById = async (id) => {
|
|
50
50
|
try {
|
|
51
|
-
await Db.transfer.destroy({ transferId: id })
|
|
51
|
+
await Db.from('transfer').destroy({ transferId: id })
|
|
52
52
|
} catch (err) {
|
|
53
53
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
54
54
|
}
|
|
@@ -56,9 +56,9 @@ const destroyById = async (id) => {
|
|
|
56
56
|
|
|
57
57
|
const truncateTransfer = async () => {
|
|
58
58
|
try {
|
|
59
|
-
return await Db.transfer.truncate()
|
|
59
|
+
return await Db.from('transfer').truncate()
|
|
60
60
|
} catch (err) {
|
|
61
|
-
Logger.error(err)
|
|
61
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
62
62
|
throw err
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
const Db = require('../../lib/db')
|
|
32
32
|
const Logger = require('@mojaloop/central-services-logger')
|
|
33
33
|
const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
34
|
-
|
|
34
|
+
const Metrics = require('@mojaloop/central-services-metrics')
|
|
35
35
|
/**
|
|
36
36
|
* @function GetTransferDuplicateCheck
|
|
37
37
|
*
|
|
@@ -44,10 +44,18 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
44
44
|
*/
|
|
45
45
|
|
|
46
46
|
const getTransferDuplicateCheck = async (transferId) => {
|
|
47
|
-
|
|
47
|
+
const histTimerGetTransferDuplicateCheckEnd = Metrics.getHistogram(
|
|
48
|
+
'model_transfer',
|
|
49
|
+
'transferDuplicateCheck_getTransferDuplicateCheck - Metrics for transfer duplicate check model',
|
|
50
|
+
['success', 'queryName']
|
|
51
|
+
).startTimer()
|
|
52
|
+
Logger.isDebugEnabled && Logger.debug(`get transferDuplicateCheck (transferId=${transferId})`)
|
|
48
53
|
try {
|
|
49
|
-
|
|
54
|
+
const result = Db.from('transferDuplicateCheck').findOne({ transferId })
|
|
55
|
+
histTimerGetTransferDuplicateCheckEnd({ success: true, queryName: 'transferDuplicateCheck_getTransferDuplicateCheck' })
|
|
56
|
+
return result
|
|
50
57
|
} catch (err) {
|
|
58
|
+
histTimerGetTransferDuplicateCheckEnd({ success: false, queryName: 'transferDuplicateCheck_getTransferDuplicateCheck' })
|
|
51
59
|
throw new Error(err.message)
|
|
52
60
|
}
|
|
53
61
|
}
|
|
@@ -65,10 +73,18 @@ const getTransferDuplicateCheck = async (transferId) => {
|
|
|
65
73
|
*/
|
|
66
74
|
|
|
67
75
|
const saveTransferDuplicateCheck = async (transferId, hash) => {
|
|
68
|
-
|
|
76
|
+
const histTimerSaveTransferDuplicateCheckEnd = Metrics.getHistogram(
|
|
77
|
+
'model_transfer',
|
|
78
|
+
'transferDuplicateCheck_saveTransferDuplicateCheck - Metrics for transfer duplicate check model',
|
|
79
|
+
['success', 'queryName']
|
|
80
|
+
).startTimer()
|
|
81
|
+
Logger.isDebugEnabled && Logger.debug(`save transferDuplicateCheck (transferId=${transferId}, hash=${hash})`)
|
|
69
82
|
try {
|
|
70
|
-
|
|
83
|
+
const result = Db.from('transferDuplicateCheck').insert({ transferId, hash })
|
|
84
|
+
histTimerSaveTransferDuplicateCheckEnd({ success: true, queryName: 'transferDuplicateCheck_saveTransferDuplicateCheck' })
|
|
85
|
+
return result
|
|
71
86
|
} catch (err) {
|
|
87
|
+
histTimerSaveTransferDuplicateCheckEnd({ success: false, queryName: 'transferDuplicateCheck_saveTransferDuplicateCheck' })
|
|
72
88
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
73
89
|
}
|
|
74
90
|
}
|
|
@@ -47,9 +47,9 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
47
47
|
*/
|
|
48
48
|
|
|
49
49
|
const insert = async (transferId, transferStateChangeId, errorCode, errorDescription) => {
|
|
50
|
-
Logger.debug(`insert transferError - errorCode: ${errorCode}, errorDesc: ${errorDescription}`)
|
|
50
|
+
Logger.isDebugEnabled && Logger.debug(`insert transferError - errorCode: ${errorCode}, errorDesc: ${errorDescription}`)
|
|
51
51
|
try {
|
|
52
|
-
return Db.transferError.insert({ transferId, transferStateChangeId, errorCode, errorDescription })
|
|
52
|
+
return Db.from('transferError').insert({ transferId, transferStateChangeId, errorCode, errorDescription })
|
|
53
53
|
} catch (err) {
|
|
54
54
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
55
55
|
}
|
|
@@ -78,7 +78,7 @@ const insert = async (transferId, transferStateChangeId, errorCode, errorDescrip
|
|
|
78
78
|
|
|
79
79
|
const getByTransferStateChangeId = async (transferStateChangeId) => {
|
|
80
80
|
try {
|
|
81
|
-
return Db.transferError.find({ transferStateChangeId
|
|
81
|
+
return Db.from('transferError').find({ transferStateChangeId })
|
|
82
82
|
} catch (err) {
|
|
83
83
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
84
84
|
}
|
|
@@ -107,7 +107,7 @@ const getByTransferStateChangeId = async (transferStateChangeId) => {
|
|
|
107
107
|
|
|
108
108
|
const getByTransferId = async (id) => {
|
|
109
109
|
try {
|
|
110
|
-
const transferError = await Db.transferError.query(async (builder) => {
|
|
110
|
+
const transferError = await Db.from('transferError').query(async (builder) => {
|
|
111
111
|
const result = builder
|
|
112
112
|
.where({ transferId: id })
|
|
113
113
|
.select('*')
|
|
@@ -117,7 +117,7 @@ const getByTransferId = async (id) => {
|
|
|
117
117
|
transferError.errorCode = transferError.errorCode.toString()
|
|
118
118
|
return transferError
|
|
119
119
|
} catch (err) {
|
|
120
|
-
Logger.error(err)
|
|
120
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
121
121
|
throw err
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -44,9 +44,9 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
44
44
|
*/
|
|
45
45
|
|
|
46
46
|
const getTransferErrorDuplicateCheck = async (transferId) => {
|
|
47
|
-
Logger.debug(`get transferErrorDuplicateCheck (transferId=${transferId})`)
|
|
47
|
+
Logger.isDebugEnabled && Logger.debug(`get transferErrorDuplicateCheck (transferId=${transferId})`)
|
|
48
48
|
try {
|
|
49
|
-
return Db.transferErrorDuplicateCheck.findOne({ transferId })
|
|
49
|
+
return Db.from('transferErrorDuplicateCheck').findOne({ transferId })
|
|
50
50
|
} catch (err) {
|
|
51
51
|
throw new Error(err.message)
|
|
52
52
|
}
|
|
@@ -65,9 +65,9 @@ const getTransferErrorDuplicateCheck = async (transferId) => {
|
|
|
65
65
|
*/
|
|
66
66
|
|
|
67
67
|
const saveTransferErrorDuplicateCheck = async (transferId, hash) => {
|
|
68
|
-
Logger.debug(`save transferErrorDuplicateCheck (transferId=${transferId}, hash=${hash})`)
|
|
68
|
+
Logger.isDebugEnabled && Logger.debug(`save transferErrorDuplicateCheck (transferId=${transferId}, hash=${hash})`)
|
|
69
69
|
try {
|
|
70
|
-
return Db.transferErrorDuplicateCheck.insert({ transferId, hash })
|
|
70
|
+
return Db.from('transferErrorDuplicateCheck').insert({ transferId, hash })
|
|
71
71
|
} catch (err) {
|
|
72
72
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
73
73
|
}
|
|
@@ -32,7 +32,7 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
32
32
|
|
|
33
33
|
const saveTransferExtension = async (extension) => {
|
|
34
34
|
try {
|
|
35
|
-
return await Db.transferExtension.insert(extension)
|
|
35
|
+
return await Db.from('transferExtension').insert(extension)
|
|
36
36
|
} catch (err) {
|
|
37
37
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
38
38
|
}
|
|
@@ -40,7 +40,7 @@ const saveTransferExtension = async (extension) => {
|
|
|
40
40
|
|
|
41
41
|
const getByTransferId = async (transferId, isFulfilment = false, isError = false) => {
|
|
42
42
|
try {
|
|
43
|
-
return await Db.transferExtension.find({ transferId, isFulfilment, isError })
|
|
43
|
+
return await Db.from('transferExtension').find({ transferId, isFulfilment, isError })
|
|
44
44
|
} catch (err) {
|
|
45
45
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
46
46
|
}
|
|
@@ -48,7 +48,7 @@ const getByTransferId = async (transferId, isFulfilment = false, isError = false
|
|
|
48
48
|
|
|
49
49
|
const getByTransferExtensionId = async (transferExtensionId) => {
|
|
50
50
|
try {
|
|
51
|
-
return await Db.transferExtension.findOne({ transferExtensionId })
|
|
51
|
+
return await Db.from('transferExtension').findOne({ transferExtensionId })
|
|
52
52
|
} catch (err) {
|
|
53
53
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
54
54
|
}
|
|
@@ -56,7 +56,7 @@ const getByTransferExtensionId = async (transferExtensionId) => {
|
|
|
56
56
|
|
|
57
57
|
const destroyByTransferId = async (transferId) => {
|
|
58
58
|
try {
|
|
59
|
-
return await Db.transferExtension.destroy({ transferId })
|
|
59
|
+
return await Db.from('transferExtension').destroy({ transferId })
|
|
60
60
|
} catch (err) {
|
|
61
61
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
62
62
|
}
|
|
@@ -29,20 +29,20 @@ const Logger = require('@mojaloop/central-services-logger')
|
|
|
29
29
|
const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
30
30
|
|
|
31
31
|
const getByTransferId = async (transferId) => {
|
|
32
|
-
Logger.debug('getByTransferId ' + transferId.toString())
|
|
32
|
+
Logger.isDebugEnabled && Logger.debug('getByTransferId ' + transferId.toString())
|
|
33
33
|
try {
|
|
34
|
-
return await Db.transferFulfilment.find({ transferId
|
|
34
|
+
return await Db.from('transferFulfilment').find({ transferId })
|
|
35
35
|
} catch (err) {
|
|
36
36
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const saveTransferFulfilment = async (record) => {
|
|
41
|
-
Logger.debug('save transferFulfilment ' + record.toString())
|
|
41
|
+
Logger.isDebugEnabled && Logger.debug('save transferFulfilment ' + record.toString())
|
|
42
42
|
try {
|
|
43
|
-
return await Db.transferFulfilment.insert(record)
|
|
43
|
+
return await Db.from('transferFulfilment').insert(record)
|
|
44
44
|
} catch (err) {
|
|
45
|
-
Logger.error(err)
|
|
45
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
46
46
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -44,9 +44,9 @@ const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
|
44
44
|
*/
|
|
45
45
|
|
|
46
46
|
const getTransferFulfilmentDuplicateCheck = async (transferId) => {
|
|
47
|
-
Logger.debug(`get transferFulfilmentDuplicateCheck (transferId=${transferId})`)
|
|
47
|
+
Logger.isDebugEnabled && Logger.debug(`get transferFulfilmentDuplicateCheck (transferId=${transferId})`)
|
|
48
48
|
try {
|
|
49
|
-
return Db.transferFulfilmentDuplicateCheck.findOne({ transferId })
|
|
49
|
+
return Db.from('transferFulfilmentDuplicateCheck').findOne({ transferId })
|
|
50
50
|
} catch (err) {
|
|
51
51
|
throw new Error(err.message)
|
|
52
52
|
}
|
|
@@ -65,9 +65,9 @@ const getTransferFulfilmentDuplicateCheck = async (transferId) => {
|
|
|
65
65
|
*/
|
|
66
66
|
|
|
67
67
|
const saveTransferFulfilmentDuplicateCheck = async (transferId, hash) => {
|
|
68
|
-
Logger.debug(`save transferFulfilmentDuplicateCheck (transferId=${transferId}, hash=${hash})`)
|
|
68
|
+
Logger.isDebugEnabled && Logger.debug(`save transferFulfilmentDuplicateCheck (transferId=${transferId}, hash=${hash})`)
|
|
69
69
|
try {
|
|
70
|
-
return Db.transferFulfilmentDuplicateCheck.insert({ transferId, hash })
|
|
70
|
+
return Db.from('transferFulfilmentDuplicateCheck').insert({ transferId, hash })
|
|
71
71
|
} catch (err) {
|
|
72
72
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
73
73
|
}
|
|
@@ -28,11 +28,11 @@ const Db = require('../../lib/db')
|
|
|
28
28
|
const Logger = require('@mojaloop/central-services-logger')
|
|
29
29
|
|
|
30
30
|
const saveTransferParticipant = async (record) => {
|
|
31
|
-
Logger.debug('save transferParticipant' + record.toString())
|
|
31
|
+
Logger.isDebugEnabled && Logger.debug('save transferParticipant' + record.toString())
|
|
32
32
|
try {
|
|
33
|
-
return await Db.transferParticipant.insert(record)
|
|
33
|
+
return await Db.from('transferParticipant').insert(record)
|
|
34
34
|
} catch (err) {
|
|
35
|
-
Logger.error(err)
|
|
35
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
36
36
|
throw err
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -30,18 +30,18 @@ const Db = require('../../lib/db')
|
|
|
30
30
|
const Logger = require('@mojaloop/central-services-logger')
|
|
31
31
|
|
|
32
32
|
const saveTransferStateChange = async (stateChange) => {
|
|
33
|
-
Logger.debug('save transferStateChange' + stateChange.toString())
|
|
33
|
+
Logger.isDebugEnabled && Logger.debug('save transferStateChange' + stateChange.toString())
|
|
34
34
|
try {
|
|
35
|
-
return Db.transferStateChange.insert(stateChange)
|
|
35
|
+
return Db.from('transferStateChange').insert(stateChange)
|
|
36
36
|
} catch (err) {
|
|
37
|
-
Logger.error(err)
|
|
37
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
38
38
|
throw err
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
const getByTransferId = async (id) => {
|
|
43
43
|
try {
|
|
44
|
-
return await Db.transferStateChange.query(async (builder) => {
|
|
44
|
+
return await Db.from('transferStateChange').query(async (builder) => {
|
|
45
45
|
const result = builder
|
|
46
46
|
.where({ 'transferStateChange.transferId': id })
|
|
47
47
|
.select('transferStateChange.*')
|
|
@@ -50,43 +50,43 @@ const getByTransferId = async (id) => {
|
|
|
50
50
|
return result
|
|
51
51
|
})
|
|
52
52
|
} catch (err) {
|
|
53
|
-
Logger.error(err)
|
|
53
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
54
54
|
throw err
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const getByTransferIdList = async (transfersIdList) => {
|
|
59
59
|
try {
|
|
60
|
-
return await Db.transferStateChange.query(async (builder) => {
|
|
60
|
+
return await Db.from('transferStateChange').query(async (builder) => {
|
|
61
61
|
const result = builder
|
|
62
62
|
.whereIn('transferStateChange.transferId', transfersIdList)
|
|
63
63
|
return result
|
|
64
64
|
})
|
|
65
65
|
} catch (err) {
|
|
66
|
-
Logger.error(err)
|
|
66
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
67
67
|
throw err
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
const getLatest = async () => {
|
|
72
72
|
try {
|
|
73
|
-
return await Db.transferStateChange.query(async (builder) => {
|
|
73
|
+
return await Db.from('transferStateChange').query(async (builder) => {
|
|
74
74
|
return builder
|
|
75
75
|
.select('transferStateChangeId')
|
|
76
76
|
.orderBy('transferStateChangeId', 'desc')
|
|
77
77
|
.first()
|
|
78
78
|
})
|
|
79
79
|
} catch (err) {
|
|
80
|
-
Logger.error(err)
|
|
80
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
81
81
|
throw err
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
const truncate = async () => {
|
|
86
86
|
try {
|
|
87
|
-
return await Db.transferStateChange.truncate()
|
|
87
|
+
return await Db.from('transferStateChange').truncate()
|
|
88
88
|
} catch (err) {
|
|
89
|
-
Logger.error(err)
|
|
89
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
90
90
|
throw err
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -30,14 +30,14 @@ const Enum = require('@mojaloop/central-services-shared').Enum
|
|
|
30
30
|
const TS = Enum.Transfers.TransferInternalState
|
|
31
31
|
|
|
32
32
|
const cleanup = async () => {
|
|
33
|
-
Logger.debug('cleanup transferTimeout')
|
|
33
|
+
Logger.isDebugEnabled && Logger.debug('cleanup transferTimeout')
|
|
34
34
|
try {
|
|
35
35
|
const knex = await Db.getKnex()
|
|
36
36
|
|
|
37
|
-
const ttIdList = await Db.transferTimeout.query(async (builder) => {
|
|
37
|
+
const ttIdList = await Db.from('transferTimeout').query(async (builder) => {
|
|
38
38
|
const b = await builder
|
|
39
39
|
.whereIn('tsc.transferStateId', [`${TS.RECEIVED_FULFIL}`, `${TS.COMMITTED}`, `${TS.FAILED}`, `${TS.RESERVED_TIMEOUT}`,
|
|
40
|
-
`${TS.RECEIVED_REJECT}`, `${TS.EXPIRED_PREPARED}`, `${TS.EXPIRED_RESERVED}`, `${TS.ABORTED_REJECTED}`])
|
|
40
|
+
`${TS.RECEIVED_REJECT}`, `${TS.EXPIRED_PREPARED}`, `${TS.EXPIRED_RESERVED}`, `${TS.ABORTED_REJECTED}`, `${TS.ABORTED_ERROR}`])
|
|
41
41
|
.innerJoin(
|
|
42
42
|
knex('transferTimeout AS tt1')
|
|
43
43
|
.select('tsc1.transferId')
|
|
@@ -50,7 +50,7 @@ const cleanup = async () => {
|
|
|
50
50
|
return b
|
|
51
51
|
})
|
|
52
52
|
|
|
53
|
-
await Db.transferTimeout.query(async (builder) => {
|
|
53
|
+
await Db.from('transferTimeout').query(async (builder) => {
|
|
54
54
|
const b = await builder
|
|
55
55
|
.whereIn('transferTimeout.transferTimeoutId', ttIdList.map(elem => elem.transferTimeoutId))
|
|
56
56
|
.del()
|
|
@@ -58,7 +58,7 @@ const cleanup = async () => {
|
|
|
58
58
|
})
|
|
59
59
|
return ttIdList
|
|
60
60
|
} catch (err) {
|
|
61
|
-
Logger.error(err)
|
|
61
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
62
62
|
throw err
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -116,12 +116,12 @@ bulkTransferSchema.pre('save', function () {
|
|
|
116
116
|
})
|
|
117
117
|
await individualTransfer.save()
|
|
118
118
|
} catch (err) {
|
|
119
|
-
Logger.error(err)
|
|
119
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
120
120
|
throw err
|
|
121
121
|
}
|
|
122
122
|
})
|
|
123
123
|
} catch (err) {
|
|
124
|
-
Logger.error(err)
|
|
124
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
125
125
|
throw err
|
|
126
126
|
}
|
|
127
127
|
})
|
|
@@ -202,12 +202,12 @@ bulkTransferResponseSchema.pre('save', function () {
|
|
|
202
202
|
})
|
|
203
203
|
await individualTransferResult.save()
|
|
204
204
|
} catch (err) {
|
|
205
|
-
Logger.error(err)
|
|
205
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
206
206
|
throw err
|
|
207
207
|
}
|
|
208
208
|
})
|
|
209
209
|
} catch (err) {
|
|
210
|
-
Logger.error(err)
|
|
210
|
+
Logger.isErrorEnabled && Logger.error(err)
|
|
211
211
|
throw err
|
|
212
212
|
}
|
|
213
213
|
})
|
package/src/shared/plugins.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const Path = require('path')
|
|
4
4
|
const Inert = require('@hapi/inert')
|
|
5
5
|
const Vision = require('@hapi/vision')
|
|
6
6
|
const Blipp = require('blipp')
|
|
7
7
|
const ErrorHandling = require('@mojaloop/central-services-error-handling')
|
|
8
|
+
const APIDocumentation = require('@mojaloop/central-services-shared').Util.Hapi.APIDocumentation
|
|
9
|
+
const Config = require('../lib/config')
|
|
8
10
|
|
|
9
11
|
const registerPlugins = async (server) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
version: Package.version
|
|
12
|
+
if (Config.API_DOC_ENDPOINTS_ENABLED) {
|
|
13
|
+
await server.register({
|
|
14
|
+
plugin: APIDocumentation,
|
|
15
|
+
options: {
|
|
16
|
+
documentPath: Path.resolve(__dirname, '../api/interface/swagger.json')
|
|
16
17
|
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
18
|
+
})
|
|
19
|
+
}
|
|
19
20
|
|
|
20
21
|
await server.register({
|
|
21
22
|
plugin: require('@hapi/good'),
|
package/src/shared/setup.js
CHANGED
|
@@ -36,10 +36,9 @@
|
|
|
36
36
|
const Hapi = require('@hapi/hapi')
|
|
37
37
|
const Migrator = require('../lib/migrator')
|
|
38
38
|
const Db = require('../lib/db')
|
|
39
|
-
const ObjStoreDb = require('@mojaloop/
|
|
39
|
+
const ObjStoreDb = require('@mojaloop/object-store-lib').Db
|
|
40
40
|
const Plugins = require('./plugins')
|
|
41
41
|
const Config = require('../lib/config')
|
|
42
|
-
const Sidecar = require('../lib/sidecar')
|
|
43
42
|
const RequestLogger = require('../lib/requestLogger')
|
|
44
43
|
const Uuid = require('uuid4')
|
|
45
44
|
const UrlParser = require('../lib/urlParser')
|
|
@@ -48,23 +47,34 @@ const RegisterHandlers = require('../handlers/register')
|
|
|
48
47
|
const Metrics = require('@mojaloop/central-services-metrics')
|
|
49
48
|
const ErrorHandler = require('@mojaloop/central-services-error-handling')
|
|
50
49
|
const Cache = require('../lib/cache')
|
|
50
|
+
const EnumCached = require('../lib/enumCached')
|
|
51
51
|
const ParticipantCached = require('../models/participant/participantCached')
|
|
52
52
|
const ParticipantCurrencyCached = require('../models/participant/participantCurrencyCached')
|
|
53
|
+
const ParticipantLimitCached = require('../models/participant/participantLimitCached')
|
|
53
54
|
|
|
54
55
|
const migrate = (runMigrations) => {
|
|
55
56
|
return runMigrations ? Migrator.migrate() : true
|
|
56
57
|
}
|
|
58
|
+
|
|
57
59
|
const connectDatabase = async () => {
|
|
58
|
-
|
|
60
|
+
Logger.isDebugEnabled && Logger.debug(`Connecting to DB ${JSON.stringify(Config.DATABASE)}`)
|
|
61
|
+
await Db.connect(Config.DATABASE)
|
|
62
|
+
const dbLoadedTables = Db._tables ? Db._tables.length : -1
|
|
63
|
+
Logger.isDebugEnabled && Logger.debug(`DB.connect loaded '${dbLoadedTables}' tables!`)
|
|
59
64
|
}
|
|
65
|
+
|
|
60
66
|
const connectMongoose = async () => {
|
|
61
67
|
if (!Config.MONGODB_DISABLED) {
|
|
62
68
|
try {
|
|
69
|
+
if (Config.MONGODB_DEBUG) {
|
|
70
|
+
Logger.isWarnEnabled && Logger.warn('Enabling debug for Mongoose...')
|
|
71
|
+
ObjStoreDb.Mongoose.set('debug', Config.MONGODB_DEBUG) // enable debug
|
|
72
|
+
}
|
|
63
73
|
return ObjStoreDb.connect(Config.MONGODB_URI)
|
|
64
74
|
} catch (err) {
|
|
65
75
|
throw ErrorHandler.Factory.reformatFSPIOPError(err)
|
|
66
76
|
// TODO: review as code is being changed from returning null to returning a FSPIOPError
|
|
67
|
-
// Logger.error(`error - ${err}`)
|
|
77
|
+
// Logger.isErrorEnabled && Logger.error(`error - ${err}`)
|
|
68
78
|
// return null
|
|
69
79
|
}
|
|
70
80
|
} else {
|
|
@@ -94,8 +104,8 @@ const createServer = (port, modules) => {
|
|
|
94
104
|
}
|
|
95
105
|
}
|
|
96
106
|
})
|
|
97
|
-
server.ext('
|
|
98
|
-
const transferId = UrlParser.idFromTransferUri(`${Config.HOSTNAME}${request.
|
|
107
|
+
server.ext('onPostAuth', function (request, h) {
|
|
108
|
+
const transferId = UrlParser.idFromTransferUri(`${Config.HOSTNAME}${request.path}`)
|
|
99
109
|
request.headers.traceid = request.headers.traceid || transferId || Uuid()
|
|
100
110
|
RequestLogger.logRequest(request)
|
|
101
111
|
return h.continue
|
|
@@ -107,7 +117,7 @@ const createServer = (port, modules) => {
|
|
|
107
117
|
await Plugins.registerPlugins(server)
|
|
108
118
|
await server.register(modules)
|
|
109
119
|
await server.start()
|
|
110
|
-
Logger.info(
|
|
120
|
+
Logger.isInfoEnabled && Logger.info(`Server running at: ${server.info.uri}`)
|
|
111
121
|
return server
|
|
112
122
|
})()
|
|
113
123
|
}
|
|
@@ -133,17 +143,17 @@ const createHandlers = async (handlers) => {
|
|
|
133
143
|
ext: {},
|
|
134
144
|
start: new Date(),
|
|
135
145
|
info: {},
|
|
136
|
-
handlers
|
|
146
|
+
handlers
|
|
137
147
|
}
|
|
138
148
|
|
|
139
149
|
for (const handler of handlers) {
|
|
140
150
|
if (handler.enabled) {
|
|
141
|
-
Logger.info(`Handler Setup - Registering ${JSON.stringify(handler)}!`)
|
|
151
|
+
Logger.isInfoEnabled && Logger.info(`Handler Setup - Registering ${JSON.stringify(handler)}!`)
|
|
142
152
|
switch (handler.type) {
|
|
143
153
|
case 'prepare': {
|
|
144
154
|
await RegisterHandlers.transfers.registerPrepareHandler()
|
|
145
155
|
// if (!Config.HANDLERS_CRON_DISABLED) {
|
|
146
|
-
// Logger.info('Starting Kafka Cron Jobs...')
|
|
156
|
+
// Logger.isInfoEnabled && Logger.info('Starting Kafka Cron Jobs...')
|
|
147
157
|
// await KafkaCron.start('prepare')
|
|
148
158
|
// }
|
|
149
159
|
break
|
|
@@ -151,7 +161,7 @@ const createHandlers = async (handlers) => {
|
|
|
151
161
|
case 'position': {
|
|
152
162
|
await RegisterHandlers.positions.registerPositionHandler()
|
|
153
163
|
// if (!Config.HANDLERS_CRON_DISABLED) {
|
|
154
|
-
// Logger.info('Starting Kafka Cron Jobs...')
|
|
164
|
+
// Logger.isInfoEnabled && Logger.info('Starting Kafka Cron Jobs...')
|
|
155
165
|
// await KafkaCron.start('position')
|
|
156
166
|
// }
|
|
157
167
|
break
|
|
@@ -184,9 +194,13 @@ const createHandlers = async (handlers) => {
|
|
|
184
194
|
await RegisterHandlers.bulk.registerBulkProcessingHandler()
|
|
185
195
|
break
|
|
186
196
|
}
|
|
197
|
+
case 'bulkget': {
|
|
198
|
+
await RegisterHandlers.bulk.registerBulkGetHandler()
|
|
199
|
+
break
|
|
200
|
+
}
|
|
187
201
|
default: {
|
|
188
202
|
const error = `Handler Setup - ${JSON.stringify(handler)} is not a valid handler to register!`
|
|
189
|
-
Logger.error(error)
|
|
203
|
+
Logger.isErrorEnabled && Logger.error(error)
|
|
190
204
|
throw new Error(error)
|
|
191
205
|
}
|
|
192
206
|
}
|
|
@@ -203,9 +217,11 @@ const initializeInstrumentation = () => {
|
|
|
203
217
|
}
|
|
204
218
|
|
|
205
219
|
const initializeCache = async () => {
|
|
206
|
-
await
|
|
220
|
+
await EnumCached.initialize()
|
|
207
221
|
await ParticipantCached.initialize()
|
|
208
222
|
await ParticipantCurrencyCached.initialize()
|
|
223
|
+
await ParticipantLimitCached.initialize()
|
|
224
|
+
await Cache.initCache()
|
|
209
225
|
}
|
|
210
226
|
|
|
211
227
|
/**
|
|
@@ -228,45 +244,52 @@ const initializeCache = async () => {
|
|
|
228
244
|
* @returns {object} Returns HTTP Server object
|
|
229
245
|
*/
|
|
230
246
|
const initialize = async function ({ service, port, modules = [], runMigrations = false, runHandlers = false, handlers = [] }) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
break
|
|
243
|
-
}
|
|
244
|
-
case 'handler': {
|
|
245
|
-
if (!Config.HANDLERS_API_DISABLED) {
|
|
247
|
+
try {
|
|
248
|
+
initializeInstrumentation()
|
|
249
|
+
await migrate(runMigrations)
|
|
250
|
+
await connectDatabase()
|
|
251
|
+
await connectMongoose()
|
|
252
|
+
await initializeCache()
|
|
253
|
+
|
|
254
|
+
let server
|
|
255
|
+
switch (service) {
|
|
256
|
+
case 'api':
|
|
257
|
+
case 'admin': {
|
|
246
258
|
server = await createServer(port, modules)
|
|
259
|
+
break
|
|
260
|
+
}
|
|
261
|
+
case 'handler': {
|
|
262
|
+
if (!Config.HANDLERS_API_DISABLED) {
|
|
263
|
+
server = await createServer(port, modules)
|
|
264
|
+
}
|
|
265
|
+
break
|
|
266
|
+
}
|
|
267
|
+
default: {
|
|
268
|
+
Logger.isErrorEnabled && Logger.error(`No valid service type ${service} found!`)
|
|
269
|
+
throw ErrorHandler.Factory.createInternalServerFSPIOPError(`No valid service type ${service} found!`)
|
|
247
270
|
}
|
|
248
|
-
break
|
|
249
|
-
}
|
|
250
|
-
default: {
|
|
251
|
-
Logger.error(`No valid service type ${service} found!`)
|
|
252
|
-
throw ErrorHandler.Factory.createInternalServerFSPIOPError(`No valid service type ${service} found!`)
|
|
253
271
|
}
|
|
254
|
-
}
|
|
255
272
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
273
|
+
if (runHandlers) {
|
|
274
|
+
if (Array.isArray(handlers) && handlers.length > 0) {
|
|
275
|
+
await createHandlers(handlers)
|
|
276
|
+
} else {
|
|
277
|
+
await RegisterHandlers.registerAllHandlers()
|
|
278
|
+
// if (!Config.HANDLERS_CRON_DISABLED) {
|
|
279
|
+
// Logger.isInfoEnabled && Logger.info('Starting Kafka Cron Jobs...')
|
|
280
|
+
// // await KafkaCron.start('prepare')
|
|
281
|
+
// await KafkaCron.start('position')
|
|
282
|
+
// }
|
|
283
|
+
}
|
|
266
284
|
}
|
|
267
|
-
}
|
|
268
285
|
|
|
269
|
-
|
|
286
|
+
return server
|
|
287
|
+
} catch (err) {
|
|
288
|
+
Logger.isErrorEnabled && Logger.error(`Error while initializing ${err}`)
|
|
289
|
+
|
|
290
|
+
await Db.disconnect()
|
|
291
|
+
process.exit(1)
|
|
292
|
+
}
|
|
270
293
|
}
|
|
271
294
|
|
|
272
295
|
module.exports = {
|
|
@@ -37,6 +37,7 @@ const Config = require('../../../../src/lib/config')
|
|
|
37
37
|
const ParticipantService = require('../../../../src/domain/participant')
|
|
38
38
|
const ParticipantCached = require('../../../../src/models/participant/participantCached')
|
|
39
39
|
const ParticipantCurrencyCached = require('../../../../src/models/participant/participantCurrencyCached')
|
|
40
|
+
const ParticipantLimitCached = require('../../../../src/models/participant/participantLimitCached')
|
|
40
41
|
const ParticipantHelper = require('../../helpers/participant')
|
|
41
42
|
const ParticipantEndpointHelper = require('../../helpers/participantEndpoint')
|
|
42
43
|
const ParticipantLimitHelper = require('../../helpers/participantLimit')
|
|
@@ -67,6 +68,7 @@ Test('Participant service', async (participantTest) => {
|
|
|
67
68
|
await Db.connect(Config.DATABASE)
|
|
68
69
|
await ParticipantCached.initialize()
|
|
69
70
|
await ParticipantCurrencyCached.initialize()
|
|
71
|
+
await ParticipantLimitCached.initialize()
|
|
70
72
|
await Cache.initCache()
|
|
71
73
|
test.pass()
|
|
72
74
|
test.end()
|