93 lines
2.5 KiB
TypeScript
93 lines
2.5 KiB
TypeScript
import axios from "axios";
|
|
import { prodEndpointCreation } from "./createUrl.js";
|
|
import { tryCatch } from "./tryCatch.js";
|
|
import { createLog } from "../services/logger/logger.js";
|
|
|
|
type bodyData = any;
|
|
|
|
type Data = {
|
|
endpoint: string;
|
|
data: bodyData[];
|
|
};
|
|
export const runProdApi = async (data: Data) => {
|
|
/**
|
|
* Detachs a silo
|
|
*/
|
|
|
|
let url = await prodEndpointCreation(data.endpoint);
|
|
|
|
const { data: d, error } = await tryCatch(
|
|
axios.post(url, data.data[0], {
|
|
headers: {
|
|
"X-API-Key": process.env.TEC_API_KEY || "",
|
|
"Content-Type": "application/json",
|
|
},
|
|
})
|
|
);
|
|
|
|
let e = error as any;
|
|
if (e) {
|
|
//console.log(e.response);
|
|
if (e.status === 401) {
|
|
createLog(
|
|
"error",
|
|
"lst",
|
|
"logistics",
|
|
`Not autorized: ${JSON.stringify(e.response?.data)}`
|
|
);
|
|
const data = {
|
|
success: false,
|
|
message: `Not autorized: ${JSON.stringify(e.response?.data)}`,
|
|
data: {
|
|
status: e.response?.status,
|
|
statusText: e.response?.statusText,
|
|
data: e.response?.data,
|
|
},
|
|
};
|
|
return data;
|
|
} else {
|
|
createLog(
|
|
"error",
|
|
"lst",
|
|
"logistics",
|
|
`There was an error processing the endpoint: ${JSON.stringify(
|
|
e.response?.data
|
|
)}`
|
|
);
|
|
return {
|
|
success: false,
|
|
message: `There was an error processing the endpoint: ${JSON.stringify(
|
|
e.response?.data
|
|
)}`,
|
|
data: {
|
|
status: e.response?.status,
|
|
statusText: e.response?.statusText,
|
|
data: e.response?.data,
|
|
},
|
|
};
|
|
}
|
|
}
|
|
|
|
if (d?.status !== 200) {
|
|
return {
|
|
success: false,
|
|
message: "Error processing endpoint",
|
|
data: {
|
|
status: d?.status,
|
|
statusText: d?.statusText,
|
|
data: d?.data,
|
|
},
|
|
};
|
|
} else {
|
|
return {
|
|
success: true,
|
|
message: "Endpoint was processed",
|
|
data: {
|
|
status: d.status,
|
|
statusText: d.statusText,
|
|
data: d.data,
|
|
},
|
|
};
|
|
}
|
|
};
|