Commit 40403496019e8c64634ddee472a64b5fbcc3a93d
1 parent
7539934e31
Exists in
master
and in
1 other branch
Perbaikan parameter report_port dan report_ip pada topup
Showing 1 changed file with 2 additions and 2 deletions Inline Diff
lib/listener-partner/routers/topup.js
1 | const express = require('express'); | 1 | const express = require('express'); |
2 | 2 | ||
3 | const config = require('komodo-sdk/config'); | 3 | const config = require('komodo-sdk/config'); |
4 | const logger = require('komodo-sdk/logger'); | 4 | const logger = require('komodo-sdk/logger'); |
5 | const coreapi = require('komodo-sdk/coreapi'); | 5 | const coreapi = require('komodo-sdk/coreapi'); |
6 | // const coreapi = require('../../coreapi'); | 6 | // const coreapi = require('../../coreapi'); |
7 | 7 | ||
8 | const router = express.Router(); | 8 | const router = express.Router(); |
9 | module.exports = router; | 9 | module.exports = router; |
10 | 10 | ||
11 | function onInvalidParameter(missingParameter, req, res) { | 11 | function onInvalidParameter(missingParameter, req, res) { |
12 | logger.verbose(`TOPUP: Undefined ${missingParameter} parameter`, { | 12 | logger.verbose(`TOPUP: Undefined ${missingParameter} parameter`, { |
13 | xid: res.locals.xid, | 13 | xid: res.locals.xid, |
14 | ip: req.ip, | 14 | ip: req.ip, |
15 | terminal_name: req.body.terminal_name || req.query.terminal_name, | 15 | terminal_name: req.body.terminal_name || req.query.terminal_name, |
16 | request_id: req.body.request_id || req.query.request_id, | 16 | request_id: req.body.request_id || req.query.request_id, |
17 | product_name: req.body.product_name || req.query.product_name, | 17 | product_name: req.body.product_name || req.query.product_name, |
18 | destination: req.body.destination || req.query.destination, | 18 | destination: req.body.destination || req.query.destination, |
19 | }); | 19 | }); |
20 | res.end('INVALID REQUEST'); | 20 | res.end('INVALID REQUEST'); |
21 | } | 21 | } |
22 | 22 | ||
23 | function pagePrerequisite(req, res, next) { | 23 | function pagePrerequisite(req, res, next) { |
24 | if (!req.body) req.body = {}; | 24 | if (!req.body) req.body = {}; |
25 | 25 | ||
26 | if (!req.body.terminal_name && !req.query.terminal_name) { | 26 | if (!req.body.terminal_name && !req.query.terminal_name) { |
27 | onInvalidParameter('terminal_name', req, res); | 27 | onInvalidParameter('terminal_name', req, res); |
28 | return; | 28 | return; |
29 | } | 29 | } |
30 | 30 | ||
31 | if (!req.body.password && !req.query.password) { | 31 | if (!req.body.password && !req.query.password) { |
32 | onInvalidParameter('password', req, res); | 32 | onInvalidParameter('password', req, res); |
33 | return; | 33 | return; |
34 | } | 34 | } |
35 | 35 | ||
36 | if (!req.body.request_id && !req.query.request_id) { | 36 | if (!req.body.request_id && !req.query.request_id) { |
37 | onInvalidParameter('request_id', req, res); | 37 | onInvalidParameter('request_id', req, res); |
38 | return; | 38 | return; |
39 | } | 39 | } |
40 | 40 | ||
41 | if (!req.body.product_name && !req.query.product_name) { | 41 | if (!req.body.product_name && !req.query.product_name) { |
42 | onInvalidParameter('product_name', req, res); | 42 | onInvalidParameter('product_name', req, res); |
43 | return; | 43 | return; |
44 | } | 44 | } |
45 | 45 | ||
46 | if (!req.body.destination && !req.query.destination) { | 46 | if (!req.body.destination && !req.query.destination) { |
47 | onInvalidParameter('destination', req, res); | 47 | onInvalidParameter('destination', req, res); |
48 | return; | 48 | return; |
49 | } | 49 | } |
50 | 50 | ||
51 | next(); | 51 | next(); |
52 | } | 52 | } |
53 | 53 | ||
54 | async function pageIndex(req, res) { | 54 | async function pageIndex(req, res) { |
55 | const terminalName = `${req.body.terminal_name || req.query.terminal_name}@${req.ip.replace(/^::ffff:/, '')}`; | 55 | const terminalName = `${req.body.terminal_name || req.query.terminal_name}@${req.ip.replace(/^::ffff:/, '')}`; |
56 | 56 | ||
57 | const [err, coreResponse] = await coreapi({ | 57 | const [err, coreResponse] = await coreapi({ |
58 | xid: res.locals.xid, | 58 | xid: res.locals.xid, |
59 | path: '/prepaid/buy', | 59 | path: '/prepaid/buy', |
60 | qs: { | 60 | qs: { |
61 | terminal_name: terminalName, | 61 | terminal_name: terminalName, |
62 | password: req.body.password || req.query.password, | 62 | password: req.body.password || req.query.password, |
63 | request_id: req.body.request_id || req.query.request_id, | 63 | request_id: req.body.request_id || req.query.request_id, |
64 | product_name: req.body.product_name || req.query.product_name, | 64 | product_name: req.body.product_name || req.query.product_name, |
65 | destination: req.body.destination || req.query.destination, | 65 | destination: req.body.destination || req.query.destination, |
66 | origin: config.name || 'HTTPGETX', | 66 | origin: config.name || 'HTTPGETX', |
67 | origin_report_ip: config.listener.core.ip || null, | 67 | report_ip: config.listener.core.ip || null, |
68 | origin_report_port: config.listener.core.port, | 68 | report_port: config.listener.core.port, |
69 | reverse_url: req.body.reverse_url || req.query.reverse_url || null, | 69 | reverse_url: req.body.reverse_url || req.query.reverse_url || null, |
70 | }, | 70 | }, |
71 | }); | 71 | }); |
72 | 72 | ||
73 | logger.verbose('Got CORE response', { xid: res.locals.xid, err, coreResponse }); | 73 | logger.verbose('Got CORE response', { xid: res.locals.xid, err, coreResponse }); |
74 | 74 | ||
75 | if (err) { | 75 | if (err) { |
76 | logger.warn('TOPUP: ERROR on /prepaid/buy response', { | 76 | logger.warn('TOPUP: ERROR on /prepaid/buy response', { |
77 | xid: res.locals.xid, err, coreResponseTypeof: typeof coreResponse, coreResponse, | 77 | xid: res.locals.xid, err, coreResponseTypeof: typeof coreResponse, coreResponse, |
78 | }); | 78 | }); |
79 | res.end('INVALID CORE RESPONSE'); | 79 | res.end('INVALID CORE RESPONSE'); |
80 | return; | 80 | return; |
81 | } | 81 | } |
82 | 82 | ||
83 | res.end('OK'); | 83 | res.end('OK'); |
84 | } | 84 | } |
85 | 85 | ||
86 | router.all('/', (req, res) => { res.status(404).end('404: Not implemented yet'); }); | 86 | router.all('/', (req, res) => { res.status(404).end('404: Not implemented yet'); }); |
87 | router.get('/', pagePrerequisite, pageIndex); | 87 | router.get('/', pagePrerequisite, pageIndex); |
88 | 88 |