Commit dfbae0f9afcb291366db39fe818141e868dbaf5c

Authored by Adhidarma Hadiwinoto
1 parent bf8edcaab8
Exists in master

Fix dump-req-res

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

lib/hit/dump-req-res.js
1 const MODULE_NAME = 'DUMP-REQ-RES'; 1 const MODULE_NAME = 'DUMP-REQ-RES';
2 2
3 const querystring = require('querystring'); 3 const querystring = require('querystring');
4 const fs = require('fs'); 4 const fs = require('fs');
5 const path = require('path'); 5 const path = require('path');
6 const fsPromise = require('fs').promises; 6 const fsPromise = require('fs').promises;
7 const moment = require('moment'); 7 const moment = require('moment');
8 8
9 const config = require('komodo-sdk/config'); 9 const config = require('komodo-sdk/config');
10 const logger = require('tektrans-logger'); 10 const logger = require('tektrans-logger');
11 11
12 const baseDumpDir = 'dump'; 12 const baseDumpDir = 'dump';
13 const requestDumpDir = path.join(baseDumpDir, 'request'); 13 const requestDumpDir = path.join(baseDumpDir, 'request');
14 14
15 if (!fs.existsSync(baseDumpDir)) { 15 if (!fs.existsSync(baseDumpDir)) {
16 logger.verbose(`${MODULE_NAME} 51105314: Creating base dump dir`); 16 logger.verbose(`${MODULE_NAME} 51105314: Creating base dump dir`);
17 fs.mkdirSync(baseDumpDir); 17 fs.mkdirSync(baseDumpDir);
18 } 18 }
19 19
20 if (!fs.existsSync(requestDumpDir)) { 20 if (!fs.existsSync(requestDumpDir)) {
21 logger.verbose(`${MODULE_NAME} 8A52891B: Creating request dump dir`); 21 logger.verbose(`${MODULE_NAME} 8A52891B: Creating request dump dir`);
22 fs.mkdirSync(requestDumpDir); 22 fs.mkdirSync(requestDumpDir);
23 } 23 }
24 24
25 module.exports = async ( 25 module.exports = async (
26 xid, task, httpMethod, endpointUrl, params, responseBody, responseStatus, isAdvice, 26 xid, task, httpMethod, endpointUrl, params, responseBody, responseStatus, isAdvice,
27 ) => { 27 ) => {
28 if ( 28 if (
29 !config 29 !config
30 || !config.partner 30 || !config.partner
31 || !config.partner.dump_request 31 || !config.partner.dump_request
32 ) { 32 ) {
33 return; 33 return;
34 } 34 }
35 35
36 const data = `-------- 36 const data = `--------
37 XID: ${xid} 37 XID: ${xid}
38 PID: ${process.pid} 38 PID: ${process.pid}
39 DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} 39 DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')}
40 40
41 TASK: 41 TASK:
42 ${JSON.stringify(task, null, 2)} 42 ${JSON.stringify(task, null, 2)}
43 43
44 IS-ADVICE: ${!!isAdvice} 44 IS-ADVICE: ${!!isAdvice}
45 45
46 HTTP-METHOD: ${httpMethod} 46 HTTP-METHOD: ${httpMethod}
47 URL: ${endpointUrl} 47 URL: ${endpointUrl}
48 PARAMS: 48 PARAMS:
49 ${ 49 ${
50 params && ( 50 params && (
51 (typeof params === 'string' && params) 51 (typeof params === 'string' && params)
52 || JSON.stringify(params, null, 2) 52 || JSON.stringify(params, null, 2)
53 ) 53 )
54 } 54 }
55 55
56 ${httpMethod === 'GET' ? '' : `FULL URL: ${endpointUrl}?${querystring.stringify(params)}`} 56 ${httpMethod === 'GET' ? `FULL URL: ${endpointUrl}?${querystring.stringify(params)}` : `FORM DATA: ${new URLSearchParams(params).toString()}`}
57 57
58 RESPONSE-STATUS: ${responseStatus} 58 RESPONSE-STATUS: ${responseStatus}
59 RESPONSE-BODY: 59 RESPONSE-BODY:
60 ${ 60 ${
61 responseBody && ( 61 responseBody && (
62 (typeof responseBody === 'string' && responseBody) 62 (typeof responseBody === 'string' && responseBody)
63 || JSON.stringify(responseBody, null, 2) 63 || JSON.stringify(responseBody, null, 2)
64 ) 64 )
65 } 65 }
66 66
67 `; 67 `;
68 68
69 const dumpDir = path.join( 69 const dumpDir = path.join(
70 requestDumpDir, 70 requestDumpDir,
71 moment().format('YYYY-MM-DD'), 71 moment().format('YYYY-MM-DD'),
72 ); 72 );
73 73
74 try { 74 try {
75 await fsPromise.stat(dumpDir); 75 await fsPromise.stat(dumpDir);
76 } catch { 76 } catch {
77 await fsPromise.mkdir(dumpDir, { recursive: true }); 77 await fsPromise.mkdir(dumpDir, { recursive: true });
78 } 78 }
79 79
80 await fsPromise.appendFile( 80 await fsPromise.appendFile(
81 path.join( 81 path.join(
82 dumpDir, 82 dumpDir,
83 `trx_${task.trx_id}`, 83 `trx_${task.trx_id}`,
84 ), 84 ),
85 data, 85 data,
86 ); 86 );
87 87
88 await fsPromise.writeFile( 88 await fsPromise.writeFile(
89 path.join(requestDumpDir, 'last'), 89 path.join(requestDumpDir, 'last'),
90 data, 90 data,
91 ); 91 );
92 }; 92 };
93 93