import axios, { AxiosError } from 'axios'; import serversideConfig from '../../serversideConfig'; import https from 'https'; let maintenanceVisitInstances = []; let selectedMITsByMIT = []; let selectedMITsByMVT = []; let selectedMITsByState = []; let selectedMITsByUser = []; let selectedMITsByCustomer = []; let selectedMITsByName = []; let mviTodosByTemplateId = []; let mvi = []; 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/getAllMaintenanceVisitInstances")) { // get all maintenance visit instances object from backend try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisits`); maintenanceVisitInstances = 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/addMVI")) { const body = await readBody(event) // add the mvi in the backend try { let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisit`, 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/addTodoMVI")) { const body = await readBody(event) // add the mvi todo in the backend try { let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisitTodos`, 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/getSelectedMITsByMIT")) { // get selected maintenance visit instances object by mit from backend let filteredMIT = null; const path = event._path; const pathSegments = path.split('/'); filteredMIT = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByChecklistname/${filteredMIT}`); selectedMITsByMIT = 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/getSelectedMVIByState")) { // get selected maintenance visit instances object by state from backend let filteredMIT = null; const path = event._path; const pathSegments = path.split('/'); filteredMIT = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByState/${filteredMIT}`); selectedMITsByState = 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/getSelectedMVIByMVT")) { // get selected maintenance visit instances object by mvt from backend let filteredMVT = null; const path = event._path; const pathSegments = path.split('/'); filteredMVT = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByTemplate/${filteredMVT}`); selectedMITsByMVT = 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/getSelectedMITsByCustomer")) { // get selected maintenance visit instances object by customer from backend let filteredCustomer = null; const path = event._path; const pathSegments = path.split('/'); filteredCustomer = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByCustomer/${filteredCustomer}`); selectedMITsByCustomer = 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/getSelectedMVIByUser")) { // get selected maintenance visit instances object by user from backend let filteredUser = null; const path = event._path; const pathSegments = path.split('/'); filteredUser = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByUser/${filteredUser}`); selectedMITsByUser = 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/getSelectedMVIByName")) { // get selected maintenance visit instances object by name from backend let filteredName = null; const path = event._path; const pathSegments = path.split('/'); filteredName = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByChecklistname/${filteredName}`); selectedMITsByName = 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/getSelectedMITsByState")) { // get selected maintenance visit instances object by state from backend let filteredState = null; const path = event._path; const pathSegments = path.split('/'); filteredState = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByState/${filteredState}`); selectedMITsByState = 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/deleteMaintenanceVisitInstance")) { let mviId = null; const path = event._path; const pathSegments = path.split('/'); mviId = pathSegments[pathSegments.length - 1]; // delete the mvt in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisit/${mviId}`); } 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/getTodosMaintenanceVisitInstance")) { // get maintenance visit instance todos 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}/maintenanceVisitTodosByTemplateId/${itemId}`); mviTodosByTemplateId = 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/deleteTodosMVI")) { let mviId = null; const path = event._path; const pathSegments = path.split('/'); mviId = pathSegments[pathSegments.length - 1]; // delete the mv todos in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisitTodosByTemplateID/${mviId}`); } 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/updateMaintenanceVisitInstance")) { const body = await readBody(event) // update the maintenance visit instance in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisit`, 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/getMaintenanceVisitInstance")) { // get maintenance visit instance object from backend let mviId = null; const path = event._path; const pathSegments = path.split('/'); mviId = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisit/${mviId}`); mvi = 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/updateMVITodo")) { const body = await readBody(event) // update the maintenance visit instance todo in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/maintenanceVisitTodos`, 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/deleteMVTTodoasd")) { let mviId = null; const path = event._path; const pathSegments = path.split('/'); mviId = pathSegments[pathSegments.length - 1]; // delete the mvt in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisitTodos/${mviId}`); } 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 { maintenanceVisitInstances, selectedMITsByState, selectedMITsByUser, selectedMITsByName, selectedMITsByMVT, selectedMITsByMIT, selectedMITsByCustomer, mviTodosByTemplateId, mvi, insertId, errorMsg };