Blame view
lib/partner-listener/routers/topup.js
2.82 KB
f2c18879a
|
1 2 3 4 5 6 7 8 9 10 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
const express = require('express'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const coreapi = require('komodo-sdk/coreapi'); // const coreapi = require('../../coreapi'); const router = express.Router(); module.exports = router; function onInvalidParameter(missingParameter, req, res) { logger.verbose(`TOPUP: Undefined ${missingParameter} parameter`, { xid: res.locals.xid, ip: req.ip, terminal_name: req.body.terminal_name || req.query.terminal_name, request_id: req.body.request_id || req.query.request_id, product_name: req.body.product_name || req.query.product_name, destination: req.body.destination || req.query.destination, }); res.end('INVALID REQUEST'); } function pagePrerequisite(req, res, next) { if (!req.body) req.body = {}; if (!req.body.terminal_name && !req.query.terminal_name) { onInvalidParameter('terminal_name', req, res); return; } if (!req.body.password && !req.query.password) { onInvalidParameter('password', req, res); return; } if (!req.body.request_id && !req.query.request_id) { onInvalidParameter('request_id', req, res); return; } if (!req.body.product_name && !req.query.product_name) { onInvalidParameter('product_name', req, res); return; } if (!req.body.destination && !req.query.destination) { onInvalidParameter('destination', req, res); return; } next(); } async function pageIndex(req, res) { const terminalName = `${req.body.terminal_name || req.query.terminal_name}@${req.ip.replace(/^::ffff:/, '')}`; const [err, coreResponse] = await coreapi({ xid: res.locals.xid, path: '/prepaid/buy', qs: { terminal_name: terminalName, password: req.body.password || req.query.password, request_id: req.body.request_id || req.query.request_id, product_name: req.body.product_name || req.query.product_name, destination: req.body.destination || req.query.destination, origin: config.name || 'HTTPGETX', |
404034960
|
67 68 |
report_ip: config.listener.core.ip || null, report_port: config.listener.core.port, |
f2c18879a
|
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
reverse_url: req.body.reverse_url || req.query.reverse_url || null, }, }); logger.verbose('Got CORE response', { xid: res.locals.xid, err, coreResponse }); if (err) { logger.warn('TOPUP: ERROR on /prepaid/buy response', { xid: res.locals.xid, err, coreResponseTypeof: typeof coreResponse, coreResponse, }); res.end('INVALID CORE RESPONSE'); return; } res.end('OK'); } |
65f444c36
|
85 |
// router.all('/', (req, res) => { res.status(404).end('404: Not implemented yet'); }); |
f2c18879a
|
86 |
router.get('/', pagePrerequisite, pageIndex); |