Commit a5ae0d715cee05fde6ff9af82e09b46f0e14dec0

Authored by Adhidarma Hadiwinoto
1 parent 0f6b41821e
Exists in master

Uniform response

Showing 1 changed file with 16 additions and 11 deletions Side-by-side Diff

... ... @@ -10,7 +10,9 @@ const report = require('./report');
10 10 const translateRc = require('./translate-rc');
11 11  
12 12 module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
13   - logger.verbose(`${MODULE_NAME} 58547863: Processing XML message`, { xid });
  13 + logger.verbose(`${MODULE_NAME} 58547863: Processing XML message`, { xid, isCallback });
  14 +
  15 + const responseType = isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE';
14 16  
15 17 if (!trxIdFromCaller && !isCallback) {
16 18 if (logger) logger.warn(`${MODULE_NAME} 8CAAD7C9: No trx id on non callback`, { xid });
... ... @@ -19,7 +21,8 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
19 21  
20 22 const obj = parseXml(xid, xml);
21 23 if (!obj) {
22   - logger.warn(`${MODULE_NAME} B46CAAD1: Invalid XML`, { xid });
  24 + const e = new Error(`${MODULE_NAME} B46CAAD1: Invalid XML`);
  25 + logger.warn(e.message, { xid });
23 26  
24 27 if (trxIdFromCaller) {
25 28 report(xid, {
... ... @@ -27,9 +30,11 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
27 30 rc: '68',
28 31 message: {
29 32 xid,
30   - isDirectResponse: !isCallback,
31   - isCallback: !!isCallback,
32   - body: xml,
  33 + responseType,
  34 + 'GW-ERROR': {
  35 + message: e.message,
  36 + responseFromPartner: xml,
  37 + },
33 38 },
34 39 });
35 40 }
... ... @@ -49,10 +54,10 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
49 54 rc: '68',
50 55 message: {
51 56 xid,
52   - responseType: isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE',
  57 + responseType,
53 58 'GW-ERROR': {
54 59 message: e.message,
55   - response: obj,
  60 + responseFromPartner: obj,
56 61 },
57 62 },
58 63 });
... ... @@ -67,8 +72,9 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
67 72 const responseCodeField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.responseCode) || 'RESPONSECODE';
68 73 const responseCodeFromResponse = params[responseCodeField];
69 74  
70   - const messageField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.message) || 'MESSAGE';
71   - const messageFromResponse = params[messageField];
  75 + // eslint-disable-next-line max-len
  76 + // const messageField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.message) || 'MESSAGE';
  77 + // const messageFromResponse = params[messageField];
72 78  
73 79 const snField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.sn) || 'SN';
74 80 const snFromResponse = params[snField];
... ... @@ -90,8 +96,7 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
90 96 message: {
91 97 xid,
92 98 responseType: isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE',
93   - message: messageFromResponse,
94   - detail: params,
  99 + message: params,
95 100 },
96 101 });
97 102 };