|
30 | 30 | const { ilpFactory, ILP_VERSIONS } = require('@mojaloop/sdk-standard-components').Ilp |
31 | 31 | const customLogger = require('../../requestLogger') |
32 | 32 | const { logger } = require('../../logger') |
| 33 | +const objectStore = require('../../objectStore') |
33 | 34 |
|
34 | 35 | let ilpObj = null |
35 | 36 | let ilpV4Obj = null |
@@ -140,8 +141,30 @@ const handleTransferIlp = (context, response) => { |
140 | 141 | response.body.TxInfAndSts.ExctnConf = generatedFulfilment |
141 | 142 | } |
142 | 143 | } |
| 144 | + |
| 145 | + customLogger.logMessage('debug', 'Generated callback body', { additionalData: { context, response } }) |
143 | 146 | if (context.request.method === 'get' && response.method === 'put' && pathMatch.test(response.path)) { |
144 | | - delete response.body.fulfilment |
| 147 | + const transferId = response.path.match(pathMatch)[1] |
| 148 | + // Use objectStore to get the stored transfer |
| 149 | + const storedTransfer = objectStore.get('storedTransfers', transferId) |
| 150 | + customLogger.logMessage('debug', 'Stored transfer fetched for fulfilment', { additionalData: { transferId } }) |
| 151 | + if (storedTransfer) { |
| 152 | + if (storedTransfer.data?.request?.ilpPacket) { |
| 153 | + customLogger.logMessage('debug', 'Stored transfer has ilpPacket. Generating fulfilment.', { additionalData: { transferId, ilpPacket: storedTransfer.data.request.ilpPacket } }) |
| 154 | + const generatedFulfilment = ilpObj.calculateFulfil(storedTransfer.data.request.ilpPacket).replace('"', '') |
| 155 | + response.body.fulfilment = generatedFulfilment |
| 156 | + } else if (storedTransfer.data?.request?.CdtTrfTxInf?.VrfctnOfTerms?.IlpV4PrepPacket) { |
| 157 | + customLogger.logMessage('debug', 'Stored transfer has IlpV4PrepPacket. Generating fulfilment.', { additionalData: { transferId } }) |
| 158 | + const generatedFulfilment = ilpV4Obj.calculateFulfil(storedTransfer.data.request.CdtTrfTxInf.VrfctnOfTerms.IlpV4PrepPacket).replace('"', '') |
| 159 | + response.body.TxInfAndSts.ExctnConf = generatedFulfilment |
| 160 | + } else { |
| 161 | + customLogger.logMessage('warn', 'No ILP packet or IlpV4PrepPacket found in stored transfer request', { additionalData: { transferId } }) |
| 162 | + } |
| 163 | + // Remove the stored transfer from objectStore regardless of success or failure |
| 164 | + objectStore.deleteObject('storedTransfers', transferId) |
| 165 | + } else { |
| 166 | + delete response.body.fulfilment |
| 167 | + } |
145 | 168 | } |
146 | 169 | } |
147 | 170 |
|
|
0 commit comments