Blame view

lib/core-callback/dumper/sender.js 1.83 KB
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
1
  const MODULE_NAME = 'CORE-CALLBACK.DUMPER.SENDER';
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
2
3
4
  const fsPromise = require('fs').promises;
  const path = require('path');
  const config = require('komodo-sdk/config');
810fa18da   Adhidarma Hadiwinoto   Migrate to tektra...
5
  const logger = require('tektrans-logger');
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
6
  const moment = require('moment');
c6a2bf27d   Adhidarma Hadiwinoto   Optimasi dumper
7
  const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists');
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
8

c6a2bf27d   Adhidarma Hadiwinoto   Optimasi dumper
9
10
  const baseDumpDir = path.join('dump', 'core-callback');
  const lastDumpFileName = path.join(baseDumpDir, 'last-sent');
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  
  module.exports = async (xid, httpMethod, endpointUrl, params, axiosResponse, axiosError) => {
      if (
          !config
          || !config.listener
          || !config.listener.core
          || !config.listener.core.dump
      ) {
          return;
      }
  
      const data = `--------
  XID: ${xid}
  PID: ${process.pid}
  DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')}
  
  HTTP METHOD: ${httpMethod}
  ENDPOINT URL: ${endpointUrl}
  
  REQ PARAMS:
  ${JSON.stringify(params, null, 2)}
  
  ERROR CODE: ${(axiosError && axiosError.code) || ''}
  ERROR MESSAGE: ${(axiosError && axiosError.message) || ''}
  
  RES HTTP STATUS: ${axiosResponse && axiosResponse.status}
  RES BODY:
  ${
      axiosResponse && axiosResponse.data && (
          ((typeof axiosResponse.data === 'string') && axiosResponse.data)
          || JSON.stringify(axiosResponse.data, null, 2)
      )
  }
  `;
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
45
      const dumpFileName = path.join(
c6a2bf27d   Adhidarma Hadiwinoto   Optimasi dumper
46
47
          baseDumpDir,
          moment().format('YYYY-MM-DD'),
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
48
49
50
51
52
53
          [
              'sent',
              moment().format('YYMMDD_HHmmss_SSS'),
              xid,
          ].join('_'),
      );
c6a2bf27d   Adhidarma Hadiwinoto   Optimasi dumper
54
55
56
57
58
59
60
61
62
63
64
      try {
          await mkdirIfNotExists(xid, path.dirname(dumpFileName));
          await fsPromise.writeFile(lastDumpFileName, data);
          await fsPromise.writeFile(dumpFileName, data);
      } catch (e) {
          logger.warn(`${MODULE_NAME} 9BA99454: Exception on dumping file`, {
              xid,
              eCode: e.code,
              eMessage: e.eMessage,
          });
      }
d05e75946   Adhidarma Hadiwinoto   CORE-CALLBACK dumper
65
  };