2024-04-03 08:29:13 +00:00

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;