diff --git a/package-lock.json b/package-lock.json index 63c07580f..fab14995f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/central-ledger", - "version": "11.0.0", + "version": "11.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index adecc1fa0..cddb33b0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mojaloop/central-ledger", - "version": "11.0.0", + "version": "11.0.1", "description": "Central ledger hosted by a scheme to record and settle transfers", "license": "Apache-2.0", "author": "ModusBox", diff --git a/src/handlers/bulk/get/handler.js b/src/handlers/bulk/get/handler.js index dd7e47e3a..efae773a8 100644 --- a/src/handlers/bulk/get/handler.js +++ b/src/handlers/bulk/get/handler.js @@ -41,6 +41,7 @@ const BulkTransferService = require('../../../domain/bulkTransfer') const BulkTransferModel = require('../../../models/bulkTransfer/bulkTransfer') const Validator = require('../shared/validator') const Config = require('../../../lib/config') +const { ERROR_HANDLING } = require('../../../lib/config') const location = { module: 'BulkGetHandler', method: '', path: '' } const consumerCommit = true @@ -116,7 +117,13 @@ const getBulkTransfer = async (error, messages) => { let payload = { bulkTransferState: bulkTransfer.bulkTransferState } - if (bulkTransfer.bulkTransferState !== Enum.Transfers.BulkTransferState.PROCESSING) { + let fspiopError + if (bulkTransfer.bulkTransferState === Enum.Transfers.BulkTransferState.REJECTED) { + payload = { + errorInformation: bulkTransfer.individualTransferResults[0].errorInformation + } + fspiopError = ErrorHandler.Factory.createFSPIOPErrorFromErrorInformation(payload.errorInformation) + } else if (bulkTransfer.bulkTransferState !== Enum.Transfers.BulkTransferState.PROCESSING) { payload = { ...payload, completedTimestamp: bulkTransfer.completedTimestamp, @@ -125,7 +132,11 @@ const getBulkTransfer = async (error, messages) => { } } message.value.content.payload = payload - await Kafka.proceed(Config.KAFKA_CONFIG, params, { consumerCommit, eventDetail, fromSwitch }) + if (fspiopError) { + await Kafka.proceed(Config.KAFKA_CONFIG, params, { consumerCommit, fspiopError: fspiopError.toApiErrorObject(ERROR_HANDLING), eventDetail, fromSwitch }) + } else { + await Kafka.proceed(Config.KAFKA_CONFIG, params, { consumerCommit, eventDetail, fromSwitch }) + } histTimerEnd({ success: true, fspId: Config.INSTRUMENTATION_METRICS_LABELS.fspId }) return true } catch (err) {