import { Path } from "tsoa" import axios from "axios" import { addLogSequence } from "./utils" class CallAPI { //Get public async GetData(request: any, @Path() path: any, log = true) { const token = "Bearer " + request.headers.authorization.replace("Bearer ", "") const url = process.env.API_URL + path try { const response = await axios.get(url, { headers: { Authorization: `${token}`, "Content-Type": "application/json", api_key: process.env.API_KEY, }, }) if (log) addLogSequence(request, { action: "request", status: "success", description: "connected", request: { method: "GET", url: url, response: JSON.stringify(response.data.result), }, }) return response.data.result } catch (error) { if (log) addLogSequence(request, { action: "request", status: "error", description: "unconnected", request: { method: "GET", url: url, response: JSON.stringify(error), }, }) throw error } } //Post public async PostData(request: any, @Path() path: any, sendData: any) { const token = "Bearer " + request.headers.authorization.replace("Bearer ", "") const url = process.env.API_URL + path try { const response = await axios.post(url, sendData, { headers: { Authorization: `${token}`, "Content-Type": "application/json", api_key: process.env.API_KEY, }, }) addLogSequence(request, { action: "request", status: "success", description: "connected", request: { method: "POST", url: url, payload: JSON.stringify(sendData), response: JSON.stringify(response.data.result), }, }) return response.data.result } catch (error) { addLogSequence(request, { action: "request", status: "error", description: "unconnected", request: { method: "POST", url: url, payload: JSON.stringify(sendData), response: JSON.stringify(error), }, }) throw error } } } export default CallAPI