import axios, { AxiosError } from 'axios'; import serversideConfig from '../../serversideConfig'; import https from 'https'; let issueSlips = []; let issueSlip = []; let selectedIssueSlipsByTicketNo = []; let selectedIssueSlipsByClient = []; let orderingInfo = []; let insertId = -1; let errorMsg = ''; export default defineEventHandler(async (event) => { const agent = new https.Agent({ rejectUnauthorized: false, }); const axiosInstance = axios.create({ headers: { 'Content-Type': 'application/json', Accept: "*", }, httpsAgent: agent }); if (event.path.startsWith("/api/getAllIssueSlips")) { // get all issue slips object from backend try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/issueSlips`); issueSlips = res.data; } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/getSelectedIssueSlipsByClient")) { // get selected issue slips object by client from backend let filteredClient = null; const path = event._path; const pathSegments = path.split('/'); filteredClient = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedIssueSlipsByCustomer/${filteredClient}`); selectedIssueSlipsByClient = res.data; } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/getSelectedIssueSlipsByTicketNo")) { // get selected issue slip object by issue slip from backend let filteredIssueSlip = null; const path = event._path; const pathSegments = path.split('/'); filteredIssueSlip = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedIssueSlipsByTicketNumber/${filteredIssueSlip}`); selectedIssueSlipsByTicketNo = res.data; } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/getIssueSlip")) { // get issue slip object from backend let issueSlipId = null; const path = event._path; const pathSegments = path.split('/'); issueSlipId = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/issueSlip/${issueSlipId}`); issueSlip = res.data; } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/deleteIssueSlip")) { let issueSlipId = null; const path = event._path; const pathSegments = path.split('/'); issueSlipId = pathSegments[pathSegments.length - 1]; // delete the issue slip in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/issueSlip/${issueSlipId}`); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/updateIssueSlip")) { const body = await readBody(event) // update the issue slip in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/issueSlip`, body); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/addIssueSlip")) { const body = await readBody(event) // add the issue slip in the backend try { let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/issueSlip`, body); insertId = res.data.insertId } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/updateOrderingInfo")) { const body = await readBody(event) // update the ordering info in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/orderingInfoIssueSlips`, body); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/getOrderingInfo")) { // get ordering info object from backend let itemId = null; const path = event._path; const pathSegments = path.split('/'); itemId = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/orderingInfoIssueSlips/${itemId}`); orderingInfo = res.data; } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/deleteOrderingInfo")) { let oiId = null; const path = event._path; const pathSegments = path.split('/'); oiId = pathSegments[pathSegments.length - 1]; // delete the ordering info in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/orderingInfoIssueSlips/${oiId}`); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/addOrderingInfo")) { const body = await readBody(event) // add the ordering info in the backend try { let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/orderingInfoIssueSlips`, body); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } if (event.path.startsWith("/api/deleteTodosOI")) { let oiId = null; const path = event._path; const pathSegments = path.split('/'); oiId = pathSegments[pathSegments.length - 1]; // delete the ordering info in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/orderingInfoIssueSlipsByIssueSlipId/${oiId}`); } catch (err) { if (axios.isAxiosError(err)) { const axiosError = err as AxiosError; if (axiosError.response) { // Axios error console.error(axiosError.response.data.message); errorMsg = axiosError.response.data.message; } else if (axiosError.request) { console.log(err) // If error was caused by the request console.error(axiosError.request); } else { // Other errors console.error('Error', axiosError.message); } } else { // No AxiosError console.error('Error', err); } } } }) export { issueSlips, issueSlip, selectedIssueSlipsByClient, selectedIssueSlipsByTicketNo, insertId, orderingInfo, errorMsg };