const MODULE_NAME = 'DUMP-REQ-RES'; const fs = require('fs'); const path = require('path'); const fsPromise = require('fs').promises; const moment = require('moment'); const config = require('komodo-sdk/config'); const logger = require('tektrans-logger'); const baseDumpDir = 'dump'; const requestDumpDir = path.join(baseDumpDir, 'request'); if (!fs.existsSync(baseDumpDir)) { logger.verbose(`${MODULE_NAME} 51105314: Creating base dump dir`); fs.mkdirSync(baseDumpDir); } if (!fs.existsSync(requestDumpDir)) { logger.verbose(`${MODULE_NAME} 8A52891B: Creating request dump dir`); fs.mkdirSync(requestDumpDir); } module.exports = async ( xid, task, httpMethod, endpointUrl, params, responseBody, responseStatus, isAdvice, ) => { if ( !config || !config.partner || !config.partner.dump_request ) { return; } const data = `-------- XID: ${xid} PID: ${process.pid} DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} TASK: ${JSON.stringify(task, null, 2)} IS-ADVICE: ${!!isAdvice} HTTP-METHOD: ${httpMethod} URL: ${endpointUrl} PARAMS: ${ params && ( (typeof params === 'string' && params) || JSON.stringify(params, null, 2) ) } RESPONSE-STATUS: ${responseStatus} RESPONSE-BODY: ${ responseBody && ( (typeof responseBody === 'string' && responseBody) || JSON.stringify(responseBody, null, 2) ) } `; const dumpDir = path.join( requestDumpDir, moment().format('YYYY-MM-DD'), ); try { await fsPromise.stat(dumpDir); } catch { await fsPromise.mkdir(dumpDir, { recursive: true }); } await fsPromise.appendFile( path.join( dumpDir, `trx_${task.trx_id}`, ), data, ); await fsPromise.writeFile( path.join(requestDumpDir, 'last'), data, ); };