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) { } }