104 lines
2.9 KiB
JavaScript
104 lines
2.9 KiB
JavaScript
const https = require('https');
|
|
const app = require('j7/app');
|
|
const utils = require('j7/utils');
|
|
const http = require('j7/http');
|
|
const serviceFactory = require('../services/factory');
|
|
|
|
async function internalGet(session) {
|
|
const seqId = session.request('seq_id');
|
|
const targetUrl = session.request('target_url');
|
|
const cbUrl = session.request('cb_url');
|
|
const reqJson = session.requestToJson();
|
|
new Promise(async (resolve) => {
|
|
const params = utils.jsonDecode(session.request('params'));
|
|
const {err, data} = await http.get(targetUrl, params);
|
|
const rspJson = {
|
|
'errcode': 0,
|
|
'errmsg': '',
|
|
'seq_id': seqId,
|
|
'req_json': reqJson,
|
|
'data': data
|
|
};
|
|
if (err) {
|
|
rspJson['errcode'] = 1;
|
|
rspJson['errmsg'] = '' + err;
|
|
}
|
|
console.log('data', data);
|
|
console.log('rspJson:' + utils.jsonEncode(rspJson));
|
|
await http.get(cbUrl, rspJson);
|
|
});
|
|
session.rspOk();
|
|
}
|
|
|
|
async function internalPost(session, postData) {
|
|
const seqId = session.request('seq_id');
|
|
const targetUrl = session.request('target_url');
|
|
const cbUrl = session.request('cb_url');
|
|
const reqJson = session.requestToJson();
|
|
new Promise(async (resolve) => {
|
|
const params = utils.jsonDecode(session.request('params'));
|
|
delete params['__POST'];
|
|
const {err, data} = await http.post(targetUrl, params, postData);
|
|
const rspJson = {
|
|
'errcode': 0,
|
|
'errmsg': '',
|
|
'seq_id': seqId,
|
|
'req_json': reqJson,
|
|
'data': data
|
|
};
|
|
if (err) {
|
|
rspJson['errcode'] = 1;
|
|
rspJson['errmsg'] = '' + err;
|
|
}
|
|
console.log('data', data);
|
|
console.log('rspJson:' + utils.jsonEncode(rspJson));
|
|
await http.get(cbUrl, rspJson);
|
|
});
|
|
session.rspOk();
|
|
}
|
|
|
|
async function get(session) {
|
|
const params = utils.jsonDecode(session.request('params'));
|
|
const postData = utils.getVal(params, '__POST', '');
|
|
if (postData) {
|
|
await internalPost(session, postData);
|
|
} else {
|
|
await internalGet(session);
|
|
}
|
|
};
|
|
|
|
async function post(session) {
|
|
console.log('post data', session.getBody());
|
|
const postData = session.getBody();
|
|
const seqId = session.request('seq_id');
|
|
const targetUrl = session.request('target_url');
|
|
const cbUrl = session.request('cb_url');
|
|
const reqJson = session.requestToJson();
|
|
new Promise(async (resolve) => {
|
|
const params = utils.jsonDecode(session.request('params'));
|
|
const {err, data} = await http.post(targetUrl, params, postData);
|
|
const rspJson = {
|
|
'errcode': 0,
|
|
'errmsg': '',
|
|
'seq_id': seqId,
|
|
'req_json': reqJson,
|
|
'data': data
|
|
};
|
|
if (err) {
|
|
rspJson['errcode'] = 1;
|
|
rspJson['errmsg'] = '' + err;
|
|
}
|
|
console.log('data', data);
|
|
console.log('rspJson:' + utils.jsonEncode(rspJson));
|
|
await http.get(cbUrl, rspJson);
|
|
});
|
|
session.rspOk();
|
|
}
|
|
|
|
function init() {
|
|
app.registerHandler('Proxy', 'get', get);
|
|
app.registerHandler('Proxy', 'post', post);
|
|
}
|
|
|
|
exports.init = init;
|