2024-10-01 00:41:09 +07:00
|
|
|
import { Path } from "tsoa";
|
2024-04-02 17:53:45 +07:00
|
|
|
import axios from "axios";
|
2024-07-25 17:06:42 +07:00
|
|
|
import { addLogSequence } from "./utils";
|
2024-04-02 17:53:45 +07:00
|
|
|
|
|
|
|
|
class CallAPI {
|
|
|
|
|
//Get
|
2024-10-25 14:28:24 +07:00
|
|
|
public async GetData(request: any, @Path() path: any, log = true) {
|
2024-09-30 09:45:36 +07:00
|
|
|
const token = "Bearer " + request.headers.authorization.replace("Bearer ", "");
|
2024-07-09 17:03:24 +07:00
|
|
|
const url = process.env.API_URL + path;
|
2024-04-02 17:53:45 +07:00
|
|
|
try {
|
|
|
|
|
const response = await axios.get(url, {
|
|
|
|
|
headers: {
|
2024-04-18 15:57:03 +07:00
|
|
|
Authorization: `${token}`,
|
2024-04-02 17:53:45 +07:00
|
|
|
"Content-Type": "application/json",
|
2024-08-15 13:28:20 +07:00
|
|
|
api_key: process.env.API_KEY,
|
2024-04-02 17:53:45 +07:00
|
|
|
},
|
|
|
|
|
});
|
2024-10-25 14:28:24 +07:00
|
|
|
if(log) addLogSequence(request, {
|
2024-07-25 17:06:42 +07:00
|
|
|
action: "request",
|
|
|
|
|
status: "success",
|
2024-07-26 16:30:38 +07:00
|
|
|
description: "connected",
|
2024-07-25 17:06:42 +07:00
|
|
|
request: {
|
|
|
|
|
method: "GET",
|
|
|
|
|
url: url,
|
2024-07-26 16:30:38 +07:00
|
|
|
response: JSON.stringify(response.data.result),
|
2024-07-25 17:06:42 +07:00
|
|
|
},
|
|
|
|
|
});
|
2024-04-02 17:53:45 +07:00
|
|
|
return response.data.result;
|
|
|
|
|
} catch (error) {
|
2024-10-25 14:28:24 +07:00
|
|
|
if(log) addLogSequence(request, {
|
2024-08-15 13:28:20 +07:00
|
|
|
action: "request",
|
|
|
|
|
status: "error",
|
|
|
|
|
description: "unconnected",
|
|
|
|
|
request: {
|
|
|
|
|
method: "GET",
|
|
|
|
|
url: url,
|
|
|
|
|
response: JSON.stringify(error),
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-04-02 17:53:45 +07:00
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//Post
|
|
|
|
|
public async PostData(request: any, @Path() path: any, sendData: any) {
|
2024-09-30 09:45:36 +07:00
|
|
|
const token = "Bearer " + request.headers.authorization.replace("Bearer ", "");
|
2024-07-09 17:03:24 +07:00
|
|
|
const url = process.env.API_URL + path;
|
2024-04-02 17:53:45 +07:00
|
|
|
try {
|
|
|
|
|
const response = await axios.post(url, sendData, {
|
|
|
|
|
headers: {
|
2024-04-18 15:57:03 +07:00
|
|
|
Authorization: `${token}`,
|
2024-04-02 17:53:45 +07:00
|
|
|
"Content-Type": "application/json",
|
2024-08-15 13:28:20 +07:00
|
|
|
api_key: process.env.API_KEY,
|
2024-04-02 17:53:45 +07:00
|
|
|
},
|
|
|
|
|
});
|
2024-07-25 17:06:42 +07:00
|
|
|
addLogSequence(request, {
|
|
|
|
|
action: "request",
|
|
|
|
|
status: "success",
|
2024-07-26 16:30:38 +07:00
|
|
|
description: "connected",
|
2024-07-25 17:06:42 +07:00
|
|
|
request: {
|
|
|
|
|
method: "POST",
|
|
|
|
|
url: url,
|
2024-07-26 16:30:38 +07:00
|
|
|
payload: JSON.stringify(sendData),
|
|
|
|
|
response: JSON.stringify(response.data.result),
|
2024-07-25 17:06:42 +07:00
|
|
|
},
|
|
|
|
|
});
|
2024-04-02 17:53:45 +07:00
|
|
|
return response.data.result;
|
|
|
|
|
} catch (error) {
|
2024-08-15 13:28:20 +07:00
|
|
|
addLogSequence(request, {
|
|
|
|
|
action: "request",
|
|
|
|
|
status: "error",
|
|
|
|
|
description: "unconnected",
|
|
|
|
|
request: {
|
|
|
|
|
method: "POST",
|
|
|
|
|
url: url,
|
|
|
|
|
payload: JSON.stringify(sendData),
|
|
|
|
|
response: JSON.stringify(error),
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-04-02 17:53:45 +07:00
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default CallAPI;
|