Skip to content

Commit

Permalink
fix: reformat error information response (#318)
Browse files Browse the repository at this point in the history
* fix: reformat error information response

* chore: console

* chore: tests
  • Loading branch information
kleyow committed May 13, 2022
1 parent 49b698c commit ed844b1
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 35 deletions.
8 changes: 4 additions & 4 deletions src/lib/model/OutboundBulkQuotesModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ class OutboundBulkQuotesModel {
}
}
} else if (message.type === 'bulkQuoteResponseError') {
error = new BackendError(`Got an error response requesting bulk quote: ${util.inspect(message.data, { depth: Infinity })}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response requesting bulk quote: ${util.inspect(message.data.body, { depth: Infinity })}`, 500);
error.mojaloopError = message.data.body;
}
else {
this._logger.push({ message }).log(`Ignoring cache notification for bulk quote ${bulkQuoteKey}. Unknown message type ${message.type}.`);
Expand Down Expand Up @@ -297,8 +297,8 @@ class OutboundBulkQuotesModel {
let message = JSON.parse(msg);

if (message.type === 'bulkQuoteError') {
error = new BackendError(`Got an error response retrieving bulk quote: ${util.inspect(message.data, { depth: Infinity })}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response retrieving bulk quote: ${util.inspect(message.data.body, { depth: Infinity })}`, 500);
error.mojaloopError = message.data.body;
} else if (message.type !== 'bulkQuoteResponse') {
this._logger.push({ message }).log(`Ignoring cache notification for bulk quote ${bulkQuoteKey}. Uknokwn message type ${message.type}.`);
return;
Expand Down
8 changes: 4 additions & 4 deletions src/lib/model/OutboundBulkTransfersModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ class OutboundBulkTransfersModel {
}
}
} else if (message.type === 'bulkTransferError') {
error = new BackendError(`Got an error response preparing bulk transfer: ${util.inspect(message.data, { depth: Infinity })}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response preparing bulk transfer: ${util.inspect(message.data.body, { depth: Infinity })}`, 500);
error.mojaloopError = message.data.body;
}
else {
this._logger.push({ message }).log(`Ignoring cache notification for bulk transfer ${bulkTransferKey}. Unknown message type ${message.type}.`);
Expand Down Expand Up @@ -289,8 +289,8 @@ class OutboundBulkTransfersModel {
let message = JSON.parse(msg);

if (message.type === 'bulkTransferError') {
error = new BackendError(`Got an error response retrieving bulk transfer: ${util.inspect(message.data, { depth: Infinity })}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response retrieving bulk transfer: ${util.inspect(message.data.body, { depth: Infinity })}`, 500);
error.mojaloopError = message.data.body;
} else if (message.type !== 'bulkTransferFulfil') {
this._logger.push({ message }).log(`Ignoring cache notification for bulk transfer ${bulkTransferKey}. Uknokwn message type ${message.type}.`);
return;
Expand Down
19 changes: 9 additions & 10 deletions src/lib/model/OutboundRequestToPayTransferModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,10 @@ class OutboundRequestToPayTransferModel {
const subId = await this._cache.subscribe(payeeKey, (cn, msg, subId) => {
try {
let payee = JSON.parse(msg);

if(payee.errorInformation) {
if(payee.body && payee.body.errorInformation) {
// this is an error response to our GET /parties request
const err = new BackendError(`Got an error response resolving party: ${util.inspect(payee)}`, 500);
err.mojaloopError = payee;
const err = new BackendError(`Got an error response resolving party: ${util.inspect(payee.body)}`, 500);
err.mojaloopError = payee.body;

// cancel the timeout handler
clearTimeout(timeout);
Expand Down Expand Up @@ -405,8 +404,8 @@ class OutboundRequestToPayTransferModel {
}
}
} else if (message.type === 'quoteResponseError') {
error = new BackendError(`Got an error response requesting quote: ${util.inspect(message.data)}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response requesting quote: ${util.inspect(message.data.body)}`, 500);
error.mojaloopError = message.data.body;
}
else {
this._logger.push({ message }).log(`Ignoring cache notification for quote ${quoteKey}. Unknown message type ${message.type}.`);
Expand Down Expand Up @@ -620,8 +619,8 @@ class OutboundRequestToPayTransferModel {
}
}
} else if (message.type === 'transferError') {
error = new BackendError(`Got an error response preparing transfer: ${util.inspect(message.data)}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response preparing transfer: ${util.inspect(message.data.body)}`, 500);
error.mojaloopError = message.data.body;
} else {
this._logger.push({ message }).log(`Ignoring cache notification for transfer ${transferKey}. Uknokwn message type ${message.type}.`);
return;
Expand Down Expand Up @@ -701,8 +700,8 @@ class OutboundRequestToPayTransferModel {
let message = JSON.parse(msg);

if (message.type === 'transferError') {
error = new BackendError(`Got an error response retrieving transfer: ${util.inspect(message.data)}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response retrieving transfer: ${util.inspect(message.data.body)}`, 500);
error.mojaloopError = message.data.body;
} else if (message.type !== 'transferFulfil') {
this._logger.push({ message }).log(`Ignoring cache notification for transfer ${transferKey}. Uknokwn message type ${message.type}.`);
return;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/model/OutboundTransfersModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -497,8 +497,8 @@ class OutboundTransfersModel {
}
}
} else if (message.type === 'quoteResponseError') {
error = new BackendError(`Got an error response requesting quote: ${util.inspect(message.data, { depth: Infinity })}`, 500);
error.mojaloopError = message.data;
error = new BackendError(`Got an error response requesting quote: ${util.inspect(message.data.body, { depth: Infinity })}`, 500);
error.mojaloopError = message.data.body;
}
else {
this._logger.push({ message }).log(`Ignoring cache notification for quote ${quoteKey}. Unknown message type ${message.type}.`);
Expand Down
13 changes: 8 additions & 5 deletions test/unit/lib/model/OutboundBulkQuotesModel.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,13 @@ describe('OutboundBulkQuotesModel', () => {
const expectError = {
type: 'bulkQuoteResponseError',
data: {
errorInformation: {
errorCode: '3205',
errorDescription: 'Bulk quote ID not found'
}
body: {
errorInformation: {
errorCode: '3205',
errorDescription: 'Bulk quote ID not found'
}
},
headers: {}
}
};

Expand Down Expand Up @@ -239,7 +242,7 @@ describe('OutboundBulkQuotesModel', () => {
expect(err.message.replace(/[ \n]/g,'')).toEqual(errMsg.replace(/[ \n]/g,''));
expect(err.bulkQuoteState).toBeTruthy();
expect(err.bulkQuoteState.lastError).toBeTruthy();
expect(err.bulkQuoteState.lastError.mojaloopError).toEqual(expectError.data);
expect(err.bulkQuoteState.lastError.mojaloopError).toEqual(expectError.data.body);
expect(err.bulkQuoteState.lastError.bulkQuoteState).toBe(undefined);
return;
}
Expand Down
13 changes: 8 additions & 5 deletions test/unit/lib/model/OutboundBulkTransfersModel.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,13 @@ describe('outboundBulkTransferModel', () => {
const expectError = {
type: 'bulkTransferError',
data: {
errorInformation: {
errorCode: '4001',
errorDescription: 'Payer FSP insufficient liquidity'
}
body: {
errorInformation: {
errorCode: '4001',
errorDescription: 'Payer FSP insufficient liquidity'
}
},
headers: {}
}
};

Expand Down Expand Up @@ -234,7 +237,7 @@ describe('outboundBulkTransferModel', () => {
expect(err.message.replace(/[ \n]/g,'')).toEqual(errMsg.replace(/[ \n]/g,''));
expect(err.bulkTransferState).toBeTruthy();
expect(err.bulkTransferState.lastError).toBeTruthy();
expect(err.bulkTransferState.lastError.mojaloopError).toEqual(expectError.data);
expect(err.bulkTransferState.lastError.mojaloopError).toEqual(expectError.data.body);
expect(err.bulkTransferState.lastError.bulkTransferState).toBe(undefined);
return;
}
Expand Down
13 changes: 8 additions & 5 deletions test/unit/lib/model/OutboundTransfersModel.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1390,10 +1390,13 @@ describe('outboundModel', () => {
const expectError = {
type: 'quoteResponseError',
data: {
errorInformation: {
errorCode: '3205',
errorDescription: 'Quote ID not found'
}
body: {
errorInformation: {
errorCode: '3205',
errorDescription: 'Quote ID not found'
}
},
headers: {}
}
};

Expand Down Expand Up @@ -1430,7 +1433,7 @@ describe('outboundModel', () => {
expect(err.message.replace(/[ \n]/g,'')).toEqual(errMsg.replace(/[ \n]/g,''));
expect(err.transferState).toBeTruthy();
expect(err.transferState.lastError).toBeTruthy();
expect(err.transferState.lastError.mojaloopError).toEqual(expectError.data);
expect(err.transferState.lastError.mojaloopError).toEqual(expectError.data.body);
expect(err.transferState.lastError.transferState).toBe(undefined);
return;
}
Expand Down

0 comments on commit ed844b1

Please sign in to comment.