Commit f03c7581214e13a34a1ec475c4825de8a46162b7
1 parent
ab9902ea02
Exists in
master
and in
1 other branch
Fix core-callback sender postpaid
Showing 3 changed files with 12 additions and 9 deletions Inline Diff
lib/core-callback/index.js
1 | const MODULE_NAME = 'CORE-CALLBACK'; | 1 | const MODULE_NAME = 'CORE-CALLBACK'; |
2 | 2 | ||
3 | const DEFAULT_LISTENER_FROM_CORE = 25613; | 3 | const DEFAULT_LISTENER_FROM_CORE = 25613; |
4 | 4 | ||
5 | const express = require('express'); | 5 | const express = require('express'); |
6 | const config = require('komodo-sdk/config'); | 6 | const config = require('komodo-sdk/config'); |
7 | const logger = require('komodo-sdk/logger'); | 7 | const logger = require('komodo-sdk/logger'); |
8 | const middlewareCommon = require('../middlewares/common'); | 8 | const middlewareCommon = require('../middlewares/common'); |
9 | const sender = require('./sender'); | 9 | const sender = require('./sender'); |
10 | const dumperReq = require('./dumper/req'); | 10 | const dumperReq = require('./dumper/req'); |
11 | const matrix = require('../matrix'); | 11 | const matrix = require('../matrix'); |
12 | 12 | ||
13 | const app = express(); | 13 | const app = express(); |
14 | 14 | ||
15 | app.use(express.json({ extended: true })); | 15 | app.use(express.json({ extended: true })); |
16 | app.use(express.urlencoded({ extended: true })); | 16 | app.use(express.urlencoded({ extended: true })); |
17 | 17 | ||
18 | app.use((req, res, next) => { | 18 | app.use((req, res, next) => { |
19 | res.locals.httpgetx_subsystem = MODULE_NAME; | 19 | res.locals.httpgetx_subsystem = MODULE_NAME; |
20 | next(); | 20 | next(); |
21 | }); | 21 | }); |
22 | 22 | ||
23 | app.use(middlewareCommon); | 23 | app.use(middlewareCommon); |
24 | app.use(dumperReq); | 24 | app.use(dumperReq); |
25 | 25 | ||
26 | app.use((req, res) => { | 26 | app.use((req, res) => { |
27 | matrix.core.received += 1; | 27 | matrix.core.received += 1; |
28 | res.end('OK'); | 28 | res.end('OK'); |
29 | sender(req.query, res.locals.xid); | 29 | |
30 | const data = req.method === 'GET' ? req.query : req.body; | ||
31 | sender(data, res.locals.xid); | ||
30 | }); | 32 | }); |
31 | 33 | ||
32 | const port = (config.listener && config.listener.core && config.listener.core.port) | 34 | const port = (config.listener && config.listener.core && config.listener.core.port) |
33 | || DEFAULT_LISTENER_FROM_CORE; | 35 | || DEFAULT_LISTENER_FROM_CORE; |
34 | 36 | ||
35 | app.listen(port, () => { | 37 | app.listen(port, () => { |
36 | logger.info(`${MODULE_NAME} 0375DC4E: Listen from CORE callback on port ${port}`); | 38 | logger.info(`${MODULE_NAME} 0375DC4E: Listen from CORE callback on port ${port}`); |
37 | }).on('error', (e) => { | 39 | }).on('error', (e) => { |
38 | logger.error(`${MODULE_NAME} A90E42D5: Can not listen CORE callback on port ${port}. ${e.toString()}`); | 40 | logger.error(`${MODULE_NAME} A90E42D5: Can not listen CORE callback on port ${port}. ${e.toString()}`); |
39 | process.exit(1); | 41 | process.exit(1); |
40 | }); | 42 | }); |
41 | 43 |
lib/partner-listener/dumper/index.js
1 | const MODULE_NAME = 'PARTNER-LISTENER.DUMPER'; | 1 | const MODULE_NAME = 'PARTNER-LISTENER.DUMPER'; |
2 | 2 | ||
3 | const fsPromise = require('fs').promises; | 3 | const fsPromise = require('fs').promises; |
4 | const path = require('path'); | 4 | const path = require('path'); |
5 | const moment = require('moment'); | 5 | const moment = require('moment'); |
6 | const config = require('komodo-sdk/config'); | 6 | const config = require('komodo-sdk/config'); |
7 | const logger = require('komodo-sdk/logger'); | 7 | const logger = require('komodo-sdk/logger'); |
8 | 8 | ||
9 | const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); | 9 | const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); |
10 | 10 | ||
11 | const baseDumpDir = path.join('dump', 'partner-listener'); | 11 | const baseDumpDir = path.join('dump', 'partner-listener'); |
12 | const lastDumpFileName = path.join(baseDumpDir, 'last'); | 12 | const lastDumpFileName = path.join(baseDumpDir, 'last'); |
13 | 13 | ||
14 | module.exports = async (xid, req, responseBody) => { | 14 | module.exports = async (xid, req, responseBody) => { |
15 | if ( | 15 | if ( |
16 | !config | 16 | !config |
17 | || !config.listener | 17 | || !config.listener |
18 | || !config.listener.partner | 18 | || !config.listener.partner |
19 | || !config.listener.partner.dump | 19 | || !config.listener.partner.dump |
20 | ) return; | 20 | ) return; |
21 | 21 | ||
22 | const data = `-------- | 22 | const data = `-------- |
23 | XID: ${xid} | 23 | XID: ${xid} |
24 | TS: ${moment().format('YYYY-MM-DD HH:mm:ss')} | 24 | TS: ${moment().format('YYYY-MM-DD HH:mm:ss')} |
25 | 25 | ||
26 | REQ FROM: ${req.ip} | 26 | REQ FROM: ${req.ip} |
27 | REQ CONTENT-TYPE: ${req.get('content-type')} | 27 | REQ CONTENT-TYPE: ${req.get('content-type')} |
28 | REQ METHOD: ${req.method} | 28 | REQ METHOD: ${req.method} |
29 | REQ URL: ${req.url} | 29 | REQ URL: ${req.url} |
30 | 30 | ||
31 | REQ QUERY-STRING: | 31 | REQ QUERY-STRING: |
32 | ${JSON.stringify(req.query, null, 2)} | 32 | ${JSON.stringify(req.query, null, 2)} |
33 | 33 | ||
34 | REQ BODY: | 34 | REQ BODY: |
35 | ${typeof req.body === 'string' ? req.body : JSON.stringify(req.body, null, 2)} | 35 | ${typeof req.body === 'string' ? req.body : JSON.stringify(req.body, null, 2)} |
36 | 36 | ||
37 | RES BODY: | 37 | RES BODY: |
38 | ${typeof responseBody === 'string' ? responseBody : JSON.stringify(responseBody, null, 2)} | 38 | ${typeof responseBody === 'string' ? responseBody : JSON.stringify(responseBody, null, 2)} |
39 | `; | 39 | `; |
40 | 40 | ||
41 | const dumpFileName = path.join( | 41 | const dumpFileName = path.join( |
42 | baseDumpDir, | 42 | baseDumpDir, |
43 | moment().format('YYYY-MM-DD'), | 43 | moment().format('YYYY-MM-DD'), |
44 | [ | 44 | [ |
45 | moment().format('YYMMDD_HHmmss_SSS'), | 45 | moment().format('YYMMDD_HHmmss_SSS'), |
46 | xid, | 46 | xid, |
47 | ].join('_'), | 47 | ].join('_'), |
48 | ); | 48 | ); |
49 | 49 | ||
50 | try { | 50 | try { |
51 | await mkdirIfNotExists(xid, path.basename(dumpFileName)); | 51 | await mkdirIfNotExists(xid, path.dirname(dumpFileName), MODULE_NAME); |
52 | await fsPromise.writeFile(lastDumpFileName, data); | 52 | await fsPromise.writeFile(lastDumpFileName, data); |
53 | await fsPromise.writeFile(dumpFileName, data); | 53 | await fsPromise.writeFile(dumpFileName, data); |
54 | } catch (e) { | 54 | } catch (e) { |
55 | logger.warn(`${MODULE_NAME} FBC46420: Exception on dumping file`, { | 55 | logger.warn(`${MODULE_NAME} FBC46420: Exception on dumping file`, { |
56 | xid, | 56 | xid, |
57 | eCode: e.code, | 57 | eCode: e.code, |
58 | eMessage: e.eMessage, | 58 | eMessage: e.eMessage, |
59 | }); | 59 | }); |
60 | } | 60 | } |
61 | }; | 61 | }; |
62 | 62 |
lib/utils/mkdir-if-not-exists.js
1 | const MODULE_NAME = 'MKDIR-IF-NOT-EXISTS'; | 1 | const MODULE_NAME = 'MKDIR-IF-NOT-EXISTS'; |
2 | 2 | ||
3 | const fsPromise = require('fs').promises; | 3 | const fsPromise = require('fs').promises; |
4 | const logger = require('komodo-sdk/logger'); | 4 | const logger = require('komodo-sdk/logger'); |
5 | 5 | ||
6 | const mkdir = async (xid, dirname) => { | 6 | const mkdir = async (xid, dirname, callerName) => { |
7 | try { | 7 | try { |
8 | logger.verbose(`${MODULE_NAME} 6B08D52D: Creating directory`, { | ||
9 | xid, dirname, callerName, | ||
10 | }); | ||
11 | |||
8 | await fsPromise.mkdir(dirname, { recursive: true }); | 12 | await fsPromise.mkdir(dirname, { recursive: true }); |
9 | } catch (e) { | 13 | } catch (e) { |
10 | logger.warn(`${MODULE_NAME} 857718E9: Exception on creating directory`, { | 14 | logger.warn(`${MODULE_NAME} 857718E9: Exception on creating directory`, { |
11 | xid, | 15 | xid, |
12 | dirname, | 16 | dirname, |
17 | callerName, | ||
13 | eCode: e.code, | 18 | eCode: e.code, |
14 | eMessage: e.message, | 19 | eMessage: e.message, |
15 | }); | 20 | }); |
16 | } | 21 | } |
17 | }; | 22 | }; |
18 | 23 | ||
19 | module.exports = async (xid, dirname) => { | 24 | module.exports = async (xid, dirname, callerName) => { |
20 | try { | 25 | try { |
21 | await fsPromise.stat(dirname); | 26 | await fsPromise.stat(dirname); |
22 | } catch (e) { | 27 | } catch (e) { |
23 | logger.verbose(`${MODULE_NAME} 6B08D52D: Creating directory`, { | 28 | await mkdir(xid, dirname, callerName); |
24 | xid, dirname, | ||
25 | }); | ||
26 |