import axios, { AxiosError } from 'axios'; import serversideConfig from '../../serversideConfig'; import https from 'https'; let employees = []; let employee = {}; let errorMsg = ''; let selectedEmployeesByEmployee = []; let configItemsFromCustomer = []; let selectedConfigItemsByAsset = []; 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/getAllEmployees")) { // get all users object from backend try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/users`); employees = 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) { 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/getEmployee")) { // get employee object from backend let employeeId = null; const path = event._path; const pathSegments = path.split('/'); employeeId = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/user/${employeeId}`); employee = 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/getCIFromCustomer")) { // // get all config items from a customer 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}/configItemByCustomerID/${itemId}`); // configItemsFromCustomer = 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/updateEmployee")) { const body = await readBody(event) // update the employee in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/user`, 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/updatePasswordEmployee")) { const body = await readBody(event) // update the employee in the backend try { let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/updatePassword`, 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/deleteEmployee")) { let employeeId = null; const path = event._path; const pathSegments = path.split('/'); employeeId = pathSegments[pathSegments.length - 1]; // delete the user in the backend try { let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/user/${employeeId}`); } 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/getSelectedEmployeesByEmployee")) { // get selected employees object by employee from backend let filteredEmployee = null; const path = event._path; const pathSegments = path.split('/'); filteredEmployee = pathSegments[pathSegments.length - 1]; try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedUsersByUser/${filteredEmployee}`); selectedEmployeesByEmployee = 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/getSelectedConfigItemsByAsset")) { // // get selected config items object by asset from backend // let filteredAsset = null; // const path = event._path; // const pathSegments = path.split('/'); // filteredAsset = pathSegments[pathSegments.length - 1]; // try { // let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedConfigItemsByAssetName/${filteredAsset}`); // selectedConfigItemsByAsset = 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); // } // } // } }) export { employees, employee, selectedEmployeesByEmployee, selectedConfigItemsByAsset, configItemsFromCustomer, errorMsg };