78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
|
|
const axios = require("axios");
|
||
|
|
const logger = require("./utils/logger");
|
||
|
|
const dayjs = require('dayjs');
|
||
|
|
exports.main = async (url, data, type, config) => {
|
||
|
|
if (type === "POST") {
|
||
|
|
return await post(url, data, config);
|
||
|
|
} else if (type === "FORM_POST") {
|
||
|
|
return await formPost(url, data);
|
||
|
|
} else {
|
||
|
|
return await get(url);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
function get(url) {
|
||
|
|
const info = { url, method: "GET", start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
|
||
|
|
return new Promise(async (resolve, reject) => {
|
||
|
|
try {
|
||
|
|
const response = await axios.get(url);
|
||
|
|
resolve(response.data);
|
||
|
|
writeLog(info, response);
|
||
|
|
} catch (error) {
|
||
|
|
info.errMsg = error?.message || error;
|
||
|
|
writeLog(info)
|
||
|
|
reject(error);
|
||
|
|
// throw error;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function post(url, data, config) {
|
||
|
|
const info = { url, method: "POST", data, start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
|
||
|
|
return new Promise(async (resolve, reject) => {
|
||
|
|
try {
|
||
|
|
const response = await axios.post(url, data, config);
|
||
|
|
resolve(response.data);
|
||
|
|
writeLog(info, response);
|
||
|
|
} catch (error) {
|
||
|
|
info.errMsg = error?.message || error;
|
||
|
|
writeLog(info)
|
||
|
|
reject(error);
|
||
|
|
// throw error;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function formPost(url, data) {
|
||
|
|
const info = { url, method: "FORM_POST", data, start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
|
||
|
|
return new Promise(async (resolve, reject) => {
|
||
|
|
try {
|
||
|
|
const response = await axios.post(url, data, {
|
||
|
|
headers: {
|
||
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||
|
|
}
|
||
|
|
});
|
||
|
|
resolve(response.data);
|
||
|
|
writeLog(info, response);
|
||
|
|
} catch (error) {
|
||
|
|
info.errMsg = error?.message || error;
|
||
|
|
writeLog(info, response);
|
||
|
|
reject(error);
|
||
|
|
// throw error;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function writeLog(info, response) {
|
||
|
|
try {
|
||
|
|
if (response) {
|
||
|
|
const str = JSON.stringify(response.data);
|
||
|
|
info.response = str.slice(0, 1000);
|
||
|
|
}
|
||
|
|
info.end = dayjs().format('YYYY-MM-DD HH:mm:ss:SSS');
|
||
|
|
logger.info(JSON.stringify(info));
|
||
|
|
} catch (e) { }
|
||
|
|
}
|
||
|
|
|
||
|
|
|