diff --git a/backend/models/checklistSolutionsModel.js b/backend/models/checklistSolutionsModel.js index c6bffc7..13903a6 100644 --- a/backend/models/checklistSolutionsModel.js +++ b/backend/models/checklistSolutionsModel.js @@ -4,6 +4,7 @@ import ownConn from "../dbConfig.js"; export const insertChecklistSolutionTodo = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO checklistsolutions(solutionID, step, asset, task, comments) VALUES(?, ?, ?, ?, ?)`, [data.solutionID, data.step, data.asset, data.task, data.comments]); + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -47,6 +48,7 @@ export const updateChecklistSolutionTodoById = async (data, result) => { const id = data.primaryID; let sql = `UPDATE checklistsolutions SET step = ?, asset = ?, task = ?, comments = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comments, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -61,6 +63,7 @@ export const deleteAllChecklistSolutionTodosSolutionID = async (id, result) => { try { let sql = `DELETE FROM checklistsolutions WHERE solutionID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -75,6 +78,7 @@ export const deleteChecklistSolutionTodo = async (id, result) => { try { let sql = `DELETE FROM checklistsolutions WHERE primaryID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/maintenanceVisitsModel.js b/backend/models/maintenanceVisitsModel.js index 3c19e48..d699fc4 100644 --- a/backend/models/maintenanceVisitsModel.js +++ b/backend/models/maintenanceVisitsModel.js @@ -88,6 +88,7 @@ export const deleteMaintenanceVisitById = async (id, result) => { export const insertMaintenanceVisit = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO maintenancevisits(name, templateID, maintenanceType, state, creationDate, completionDate, user, customer, customerID, templateNotes, type, timeSpent, notes) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [data.name, data.templateID, data.maintenanceType, data.state, data.creationDate, data.completionDate, data.user, data.customer, data.customerID, data.templateNotes, data.type, data.timeSpent, data.notes]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -100,7 +101,7 @@ export const insertMaintenanceVisit = async (data, result) => { //get single maintenance visit by name export const getMaintenanceVisitByName = async (id, result) => { try { - let sql = `SELECT * FROM maintenancevisits WHERE name = ?`; + let sql = `SELECT * FROM maintenancevisits WHERE name = ?`; const results = await ownConn.execute(sql, [id]) result(null, results[0]); } @@ -114,7 +115,7 @@ export const getMaintenanceVisitByName = async (id, result) => { //get single maintenance visit by id export const getMaintenanceVisitById = async (id, result) => { try { - let sql = `SELECT * FROM maintenancevisits WHERE primaryID = ?`; + let sql = `SELECT * FROM maintenancevisits WHERE primaryID = ?`; const results = await ownConn.execute(sql, [id]) result(null, results[0]); } @@ -131,6 +132,7 @@ export const updateMaintenanceVisitStateById = async (data, result) => { const id = data.primaryID; let sql = `UPDATE maintenancevisits SET state = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.state, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/maintenanceVisitsTodosModel.js b/backend/models/maintenanceVisitsTodosModel.js index 5f052c1..1c81333 100644 --- a/backend/models/maintenanceVisitsTodosModel.js +++ b/backend/models/maintenanceVisitsTodosModel.js @@ -4,6 +4,7 @@ import ownConn from "../dbConfig.js"; export const insertMaintenanceVisitTodo = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO maintenancevisittodos(templateID, step, asset, task, comment, done) VALUES(?, ?, ?, ?, ?, ?)`, [data.templateID, data.step, data.asset, data.task, data.comment, data.done]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -47,6 +48,7 @@ export const updateMaintenanceVisitTodoById = async (data, result) => { const id = data.primaryID; let sql = `UPDATE maintenancevisittodos SET step = ?, asset = ?, task = ?, comment = ?, done = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/masterMaintenanceTodosModel.js b/backend/models/masterMaintenanceTodosModel.js index 5050e71..61a9069 100644 --- a/backend/models/masterMaintenanceTodosModel.js +++ b/backend/models/masterMaintenanceTodosModel.js @@ -18,8 +18,9 @@ export const getMasterMaintenanceVisitTodoById = async (id, result) => { export const updateMasterMaintenanceVisitTodoById = async (data, result) => { try { const id = data.primaryID; - let sql = `UPDATE mastermaintenancetodos SET templateID = ?, asset = ? , task = ?, comments = ? WHERE primaryID = ?`; + let sql = `UPDATE mastermaintenancetodos SET templateID = ?, asset = ? , task = ?, commets = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.templateID, data.asset, data.task, data.comments, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -35,6 +36,7 @@ export const deleteMasterMaintenanceVisitTodoById = async (id, result) => { try { let sql = `DELETE FROM mastermaintenancetodos WHERE primaryID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -49,6 +51,7 @@ export const deleteMasterMaintenanceVisitTodoByTemplateId = async (id, result) = try { let sql = `DELETE FROM mastermaintenancetodos WHERE templateID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -79,7 +82,8 @@ export const updateMasterMaintenanceVisitTodos = async (data, result) => { //insert master maintenance visit todo to databased export const insertMasterMaintenanceVisitTodo = async (data, result) => { try { - const results = await ownConn.query(`INSERT INTO mastermaintenancetodos(templateID, rowID, asset, task, comments) VALUES(?, ?, ?, ?, ?)`, [data.templateID, data.rowID, data.asset, data.task, asset.comments]) + const results = await ownConn.query(`INSERT INTO mastermaintenancetodos(templateID, rowID, asset, task, commets) VALUES(?, ?, ?, ?, ?)`, [data.templateID, data.rowID, data.asset, data.task, data.comment]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/masterMaintenanceVisitsModel.js b/backend/models/masterMaintenanceVisitsModel.js index 44b98d0..334db85 100644 --- a/backend/models/masterMaintenanceVisitsModel.js +++ b/backend/models/masterMaintenanceVisitsModel.js @@ -62,6 +62,7 @@ export const updateMasterMaintenanceVisitById = async (data, result) => { const id = data.checklistID; let sql = `UPDATE mastermaintenancevisits SET name = ?, customerID = ? , customer = ?, type = ?, lastView = ?, user = ?, notes = ? WHERE checklistID = ?`; const results = await ownConn.query(sql, [data.name, data.customerID, data.customer, data.type, data.lastView, data.user, data.notes, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -75,6 +76,7 @@ export const updateMasterMaintenanceVisitById = async (data, result) => { export const insertMasterMaintenanceVisit = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO mastermaintenancevisits(name, customerID, customer, type, lastView, user, notes) VALUES(?, ?, ?, ?, ?, ?, ?)`, [data.name, data.customerID, data.customer, data.type, data.lastView, data.user, data.notes]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -89,6 +91,7 @@ export const deleteMasterMaintenanceVisitById = async (id, result) => { try { let sql = `DELETE FROM mastermaintenancevisits WHERE checklistID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/productionOrdersModel.js b/backend/models/productionOrdersModel.js index 378874e..b727c8a 100644 --- a/backend/models/productionOrdersModel.js +++ b/backend/models/productionOrdersModel.js @@ -115,7 +115,7 @@ export const insertProductionOrder = async (data, result) => { //get single production order by name export const getProductionOrderByName = async (id, result) => { try { - let sql = `SELECT * FROM productionorders WHERE name = ?`; + let sql = `SELECT * FROM productionorders WHERE name = ?`; const results = await ownConn.execute(sql, [id]) result(null, results[0]); } @@ -129,7 +129,7 @@ export const getProductionOrderByName = async (id, result) => { //get single production order by id export const getProductionOrderById = async (id, result) => { try { - let sql = `SELECT * FROM productionorders WHERE ticketNumber = ?`; + let sql = `SELECT * FROM productionorders WHERE ticketNumber = ?`; const results = await ownConn.execute(sql, [id]) result(null, results[0]); } diff --git a/backend/models/solutionsModel.js b/backend/models/solutionsModel.js index 1458755..f014466 100644 --- a/backend/models/solutionsModel.js +++ b/backend/models/solutionsModel.js @@ -46,6 +46,7 @@ export const getSolutionByName = async (id, result) => { export const insertSolution = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO solutions(solutionName, assetName, customer, customerID, type, lastView, user, description, notes) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)`, [data.solutionName, data.assetName, data.customer, data.customerID, data.type, data.lastView, data.user, data.description, data.notes]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -61,6 +62,7 @@ export const updateSolutionById = async (data, result) => { const id = data.primaryID; let sql = `UPDATE solutions SET solutionName = ?, assetName = ?, customer = ?, customerID = ?, type = ?, lastView = ?, user = ?, description = ?, notes = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.solutionName, data.assetName, data.customer, data.customerID, data.type, data.lastView, data.user, data.description, data.notes, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -131,6 +133,7 @@ export const deleteSolutionById = async (id, result) => { try { let sql = `DELETE FROM solutions WHERE primaryID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -138,4 +141,4 @@ export const deleteSolutionById = async (id, result) => { console.log("SQL error : ", err); result(err, null); } -}; +}; \ No newline at end of file diff --git a/backend/routes/routes.js b/backend/routes/routes.js index 95d9644..f248bbd 100644 --- a/backend/routes/routes.js +++ b/backend/routes/routes.js @@ -219,8 +219,8 @@ router.put("/masterMaintenanceVisitTodos", updateMasterMaintenanceVisitTodo); // Delete master maintenance visit todo router.delete("/masterMaintenanceVisitTodos/:id", deleteMasterMaintenanceVisitTodo); -// Delete master maintenance visit todo by customer id -router.delete("/masterMaintenanceVisitTodosByCustomerid/:id", deleteMasterMaintenanceVisitTodoByTemplateIds); +// Delete master maintenance visit todo by template id +router.delete("/masterMaintenanceVisitTodosByTemplateid/:id", deleteMasterMaintenanceVisitTodoByTemplateIds); // Update all master maintenance visit todos router.put("/allMasterMaintenanceVisitTodos", updateAllMasterMaintenanceVisitTodos) diff --git a/components/ClientSearch.vue b/components/ClientSearch.vue index b41ac05..858c594 100644 --- a/components/ClientSearch.vue +++ b/components/ClientSearch.vue @@ -1,9 +1,9 @@ @@ -98,8 +98,9 @@ export default { color: #000; } -.input { +.input-customer { border: none; + margin-left: 1rem; } .data-darkmode { diff --git a/components/server/Accounting.vue b/components/server/Accounting.vue index b072f7d..818f40e 100644 --- a/components/server/Accounting.vue +++ b/components/server/Accounting.vue @@ -34,7 +34,7 @@ - Client offer + Customer offer ... @@ -43,7 +43,7 @@ - Client order + Customer order ... diff --git a/components/server/Asset.vue b/components/server/Asset.vue index 77de5a1..5990c2d 100644 --- a/components/server/Asset.vue +++ b/components/server/Asset.vue @@ -7,7 +7,7 @@
-
Client:
+
Customer:
 {{ item.customer }}
-
Clients
+
Customers
@@ -86,6 +86,11 @@ const defaultMasterChecklistPage = () => { store.commit('changeToTemplatelist') } +const defaultSolutionPage = () => { + store.commit('resetStore'); + store.commit('changeToSolutionlist') +} + const ToggleSidebar = () => { isExpanded.value = !isExpanded.value; }; diff --git a/pages/assets.vue b/pages/assets.vue index 5abccfd..f5cb1d1 100644 --- a/pages/assets.vue +++ b/pages/assets.vue @@ -1,7 +1,9 @@ - - + + @@ -51,7 +58,7 @@ export default { name: "AssetPage", } - + \ No newline at end of file diff --git a/pages/clients.vue b/pages/clients.vue index 5415c6e..cb95e85 100644 --- a/pages/clients.vue +++ b/pages/clients.vue @@ -16,7 +16,6 @@ - - - - + + + \ No newline at end of file diff --git a/plugins/vuex.js b/plugins/vuex.js index f0f90c4..662b3a6 100644 --- a/plugins/vuex.js +++ b/plugins/vuex.js @@ -45,6 +45,7 @@ const store = createStore({ onTemplate: false, onInstancelist: false, onInstance: false, + newNamePOT: '', newCustomerIDPOT: '', newCustomerPOT: '', @@ -54,6 +55,28 @@ const store = createStore({ newNotesPOT: '', chosenPOTId: -1, + newNameMVT: '', + newCustomerIDMVT: '', + newCustomerMVT: '', + newLastViewMVT: '', + newUserMVT: '', + newTypeMVT: '', + newNotesMVT: '', + chosenMVTId: -1, + + onSolutionlist: true, + onCustomerSolutionlist: false, + onSolution: false, + chosenSolutionId: -1, + newSolutionNameSol: '', + newCustomerIDSol: '', + newCustomerSol: '', + newAssetNameSol: '', + newTypeSol: '', + newLastViewSol: '', + newUserSol: '', + newDescriptionSol: '', + newNotesSol: '', }; }, mutations: { @@ -79,7 +102,7 @@ const store = createStore({ state.filteredByClient = '' }, toggleClientChanged(state) { - state.clientChanged = !state.clientChanged + state.clientChanged = !state.clientChanged }, toggleClientId(state, id) { state.changedClientId = id @@ -112,7 +135,7 @@ const store = createStore({ state.onSolutionlistAsset = true }, - // functions to change the production order pages + // functions to change the production order and maintenance visit pages changeToTemplatelist(state) { state.onTemplatelist = true state.onCustomerTemplatelist = false @@ -149,6 +172,23 @@ const store = createStore({ state.onInstance = true }, + // functions to change the solution pages + changeToSolutionlist(state) { + state.onSolutionlist = true + state.onCustomerSolutionlist = false + state.onSolution = false + }, + changeToCustomerSolutionlist(state) { + state.onSolutionlist = false + state.onCustomerSolutionlist = true + state.onSolution = false + }, + changeToSolution(state) { + state.onSolutionlist = false + state.onCustomerSolutionlist = false + state.onSolution = true + }, + // functions to update the asset updateAssetComponent(state, asset) { state.newAssetName = asset.assetName @@ -187,6 +227,29 @@ const store = createStore({ state.newNotesPOT = pot.notes }, + // functions to update the maintenance visit template + updateMaintenanceVisitTemplateComponent(state, mvt) { + state.newNameMVT = mvt.name + state.newCustomerIDMVT = mvt.customerId + state.newCustomerMVT = mvt.customer + state.newUserMVT = mvt.user + state.newTypeMVT = mvt.type + state.newNotesMVT = mvt.notes + }, + + // functions to update the solution + updateSolutionComponent(state, sol) { + state.newSolutionNameSol = sol.solutionName + state.newCustomerIDSol = sol.customerId + state.newCustomerSol = sol.customer + state.newAssetNameSol = sol.assetName + state.newLastViewSol = sol.lastView + state.newTypeSol = sol.type + state.newDescriptionSol = sol.description + state.newNotesSol = sol.notes + state.newUserSol = sol.user + }, + // function to set the chosen asset setChosenAsset(state, id) { state.chosenAssetId = id @@ -197,6 +260,16 @@ const store = createStore({ state.chosenPOTId = id }, + // function to set the chosen maintenance visit template + setChosenMVT(state, id) { + state.chosenMVTId = id + }, + + // function to set the chosen solution + setChosenSolution(state, id) { + state.chosenSolutionId = id + }, + // function to reset the pages resetStore(state) { state.editable = false @@ -206,7 +279,7 @@ const store = createStore({ state.chosenAssetId = -1 state.filteredByClient = '' state.new = false - state.clientChanged = false + state.clientChanged = false state.changedClientId = -1 // reset the asset page variables @@ -237,10 +310,33 @@ const store = createStore({ state.newNamePOT = '' state.newCustomerIDPOT = '' state.newCustomerPOT = '' - state.newUserPOT = false + state.newUserPOT = '' state.newDescriptionPOT = '' state.newNotesPOT = '' state.newLastViewPOT = '' + state.chosenPOTId = -1 + + // reset the maintenance visit template page variables + state.newNameMVT = '' + state.newCustomerIDMVT = '' + state.newCustomerMVT = '' + state.newUserMVT = '' + state.newTypeMVT = '' + state.newNotesMVT = '' + state.newLastViewMVT = '' + state.chosenMVTId = -1 + + // reset the solution page variables + state.newSolutionNameSol = '' + state.newCustomerIDSol = '' + state.newCustomerSol = '' + state.newAssetNameSol = '' + state.newLastViewSol = '' + state.newTypeSol = '' + state.newDescriptionSol = '' + state.newNotesSol = '' + state.newUserSol = '' + state.chosenSolutionId = -1 }, // functions to (undo) delete an asset @@ -268,15 +364,19 @@ const store = createStore({ state.onCustomerAssetlist = false state.onAsset = true state.onSolutionlistAsset = false - - // set the production order variables + + // set the production order and maintenance visit variables state.onTemplatelist = false state.onCustomerTemplatelist = false state.onTemplate = true state.onInstancelist = false state.onInstance = false - }, + // set the solution variables + state.onSolutionlist = false + state.onCustomerSolutionlist = false + state.onSolution = true + }, }, }); diff --git a/server/api/addMVT.ts b/server/api/addMVT.ts new file mode 100644 index 0000000..071e81f --- /dev/null +++ b/server/api/addMVT.ts @@ -0,0 +1,22 @@ +import { insertId, errorMsg } from "../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return insertId +}) diff --git a/server/api/addSol.ts b/server/api/addSol.ts new file mode 100644 index 0000000..91c59fa --- /dev/null +++ b/server/api/addSol.ts @@ -0,0 +1,22 @@ +import { insertId, errorMsg } from "../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return insertId +}) diff --git a/server/api/addTodoMVT.ts b/server/api/addTodoMVT.ts new file mode 100644 index 0000000..a5f958b --- /dev/null +++ b/server/api/addTodoMVT.ts @@ -0,0 +1,21 @@ +import { errorMsg } from "../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) \ No newline at end of file diff --git a/server/api/addTodoSol.ts b/server/api/addTodoSol.ts new file mode 100644 index 0000000..a1c102d --- /dev/null +++ b/server/api/addTodoSol.ts @@ -0,0 +1,21 @@ +import { errorMsg } from "../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) \ No newline at end of file diff --git a/server/api/deleteMVTTodo/[id].ts b/server/api/deleteMVTTodo/[id].ts new file mode 100644 index 0000000..2a8d5c9 --- /dev/null +++ b/server/api/deleteMVTTodo/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) \ No newline at end of file diff --git a/server/api/deleteMaintenanceVisitTemplate/[id].ts b/server/api/deleteMaintenanceVisitTemplate/[id].ts new file mode 100644 index 0000000..68669f4 --- /dev/null +++ b/server/api/deleteMaintenanceVisitTemplate/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) diff --git a/server/api/deleteSolTodo/[id].ts b/server/api/deleteSolTodo/[id].ts new file mode 100644 index 0000000..4a2b227 --- /dev/null +++ b/server/api/deleteSolTodo/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) \ No newline at end of file diff --git a/server/api/deleteSolution/[id].ts b/server/api/deleteSolution/[id].ts new file mode 100644 index 0000000..ddb4889 --- /dev/null +++ b/server/api/deleteSolution/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) diff --git a/server/api/deleteTodosMVT/[id].ts b/server/api/deleteTodosMVT/[id].ts new file mode 100644 index 0000000..2a8d5c9 --- /dev/null +++ b/server/api/deleteTodosMVT/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) \ No newline at end of file diff --git a/server/api/deleteTodosSol/[id].ts b/server/api/deleteTodosSol/[id].ts new file mode 100644 index 0000000..4a2b227 --- /dev/null +++ b/server/api/deleteTodosSol/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) \ No newline at end of file diff --git a/server/api/deleteTodosSolution/[id].ts b/server/api/deleteTodosSolution/[id].ts new file mode 100644 index 0000000..4a2b227 --- /dev/null +++ b/server/api/deleteTodosSolution/[id].ts @@ -0,0 +1,22 @@ +import { errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return +}) \ No newline at end of file diff --git a/server/api/getMaintenanceVisitTemplate/[id].ts b/server/api/getMaintenanceVisitTemplate/[id].ts new file mode 100644 index 0000000..81ee0ad --- /dev/null +++ b/server/api/getMaintenanceVisitTemplate/[id].ts @@ -0,0 +1,22 @@ +import { mvt, errorMsg } from "../../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return mvt +}) diff --git a/server/api/getSelectedSolutionsByClient/[id].ts b/server/api/getSelectedSolutionsByClient/[id].ts new file mode 100644 index 0000000..9bbd315 --- /dev/null +++ b/server/api/getSelectedSolutionsByClient/[id].ts @@ -0,0 +1,22 @@ +import { selectedSolutionsByClient, errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return selectedSolutionsByClient +}) diff --git a/server/api/getSelectedSolutionsBySolution/[id].ts b/server/api/getSelectedSolutionsBySolution/[id].ts new file mode 100644 index 0000000..801bbf8 --- /dev/null +++ b/server/api/getSelectedSolutionsBySolution/[id].ts @@ -0,0 +1,22 @@ +import { selectedSolutionsBySolution, errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return selectedSolutionsBySolution +}) diff --git a/server/api/getSolution/[id].ts b/server/api/getSolution/[id].ts new file mode 100644 index 0000000..bc6610f --- /dev/null +++ b/server/api/getSolution/[id].ts @@ -0,0 +1,22 @@ +import { solution, errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return solution +}) diff --git a/server/api/getTodosMaintenanceVisitTemplate/[id].ts b/server/api/getTodosMaintenanceVisitTemplate/[id].ts new file mode 100644 index 0000000..541b67e --- /dev/null +++ b/server/api/getTodosMaintenanceVisitTemplate/[id].ts @@ -0,0 +1,22 @@ +import { mvtTodosByTemplateId, errorMsg } from "../../middleware/maintenanceVisitTemplates"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return mvtTodosByTemplateId +}) diff --git a/server/api/getTodosSolution/[id].ts b/server/api/getTodosSolution/[id].ts new file mode 100644 index 0000000..76e8b71 --- /dev/null +++ b/server/api/getTodosSolution/[id].ts @@ -0,0 +1,22 @@ +import { solTodosBySolutionId, errorMsg } from "../../middleware/solutions"; +import { OutgoingMessage } from 'http'; + +export default defineEventHandler(async (event) => { + + const headers: Record[1]> = { + 'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de', + 'Access-Control-Allow-Headers': 'authorization, content-type', + 'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE', + }; + setResponseHeaders(event, headers) + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) + return solTodosBySolutionId +}) diff --git a/server/api/updateMVTTodo.ts b/server/api/updateMVTTodo.ts new file mode 100644 index 0000000..a45786a --- /dev/null +++ b/server/api/updateMVTTodo.ts @@ -0,0 +1,13 @@ +import { errorMsg } from "../middleware/maintenanceVisitTemplates"; + +export default defineEventHandler(async (event) => { + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) \ No newline at end of file diff --git a/server/api/updateMaintenanceVisitTemplate.ts b/server/api/updateMaintenanceVisitTemplate.ts new file mode 100644 index 0000000..1b9cb34 --- /dev/null +++ b/server/api/updateMaintenanceVisitTemplate.ts @@ -0,0 +1,13 @@ +import { errorMsg } from "../middleware/maintenanceVisitTemplates"; + +export default defineEventHandler(async (event) => { + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) diff --git a/server/api/updateSolTodo.ts b/server/api/updateSolTodo.ts new file mode 100644 index 0000000..40111b7 --- /dev/null +++ b/server/api/updateSolTodo.ts @@ -0,0 +1,13 @@ +import { errorMsg } from "../middleware/solutions"; + +export default defineEventHandler(async (event) => { + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) \ No newline at end of file diff --git a/server/api/updateSolution.ts b/server/api/updateSolution.ts new file mode 100644 index 0000000..103e3ba --- /dev/null +++ b/server/api/updateSolution.ts @@ -0,0 +1,13 @@ +import { errorMsg } from "../middleware/solutions"; + +export default defineEventHandler(async (event) => { + + if (!(errorMsg === '')) { + throw createError({ + statusCode: 400, + statusMessage: errorMsg, + }) + } + + setResponseStatus(event, 200) +}) diff --git a/server/middleware/maintenanceVisitTemplates.ts b/server/middleware/maintenanceVisitTemplates.ts index e4d81a4..6647250 100644 --- a/server/middleware/maintenanceVisitTemplates.ts +++ b/server/middleware/maintenanceVisitTemplates.ts @@ -5,6 +5,9 @@ import https from 'https'; let maintenanceVisitTemplates = []; let selectedMVTsByMVT = []; let selectedMVTsByClient = []; +let mvtTodosByTemplateId = []; +let mvt = []; +let insertId = -1; let errorMsg = ''; export default defineEventHandler(async (event) => { @@ -49,8 +52,65 @@ export default defineEventHandler(async (event) => { } } + if (event.path.startsWith("/api/addMVT")) { + const body = await readBody(event) + // add the mvt in the backend + try { + let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisits`, 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/addTodoMVT")) { + const body = await readBody(event) + // add the mvt todo in the backend + try { + let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisitTodos`, 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/getSelectedMVTsByMVT")) { - // get selected maintenance visit templates object by pot from backend + // get selected maintenance visit templates object by mvt from backend let filteredMVt = null; const path = event._path; const pathSegments = path.split('/'); @@ -112,6 +172,222 @@ export default defineEventHandler(async (event) => { } } } + + if (event.path.startsWith("/api/deleteMaintenanceVisitTemplate")) { + let mvtId = null; + const path = event._path; + const pathSegments = path.split('/'); + mvtId = pathSegments[pathSegments.length - 1]; + + // delete the mvt in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisits/${mvtId}`); + } 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/getTodosMaintenanceVisitTemplate")) { + // get maintenance visit template 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}/masterMaintenanceVisitTodos/${itemId}`); + mvtTodosByTemplateId = 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/deleteTodosMVT")) { + let mvtId = null; + const path = event._path; + const pathSegments = path.split('/'); + mvtId = pathSegments[pathSegments.length - 1]; + + // delete the mvt todos in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisitTodosByTemplateid/${mvtId}`); + } 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/updateMaintenanceVisitTemplate")) { + const body = await readBody(event) + // update the maintenance visit template in the backend + try { + let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisits`, 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/getMaintenanceVisitTemplate")) { + // get maintenance visit template object from backend + let mvtId = null; + const path = event._path; + const pathSegments = path.split('/'); + mvtId = pathSegments[pathSegments.length - 1]; + + try { + let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisit/${mvtId}`); + mvt = 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/updateMVTTodo")) { + const body = await readBody(event) + // update the maintenance visit template todo in the backend + try { + let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisitTodos`, 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/deleteMVTTodo")) { + let mvtId = null; + const path = event._path; + const pathSegments = path.split('/'); + mvtId = pathSegments[pathSegments.length - 1]; + + // delete the mvt in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterMaintenanceVisitTodos/${mvtId}`); + } 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 { maintenanceVisitTemplates, selectedMVTsByMVT, selectedMVTsByClient, errorMsg }; \ No newline at end of file +export { maintenanceVisitTemplates, selectedMVTsByMVT, selectedMVTsByClient, mvtTodosByTemplateId, mvt, insertId, errorMsg }; \ No newline at end of file diff --git a/server/middleware/solutions.ts b/server/middleware/solutions.ts index fe655ca..a862172 100644 --- a/server/middleware/solutions.ts +++ b/server/middleware/solutions.ts @@ -3,24 +3,29 @@ import serversideConfig from '../../serversideConfig'; import https from 'https'; let solutions = []; +let solution = {}; +let selectedSolutionsByClient = []; +let selectedSolutionsBySolution = []; +let solTodosBySolutionId = []; +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/getAllSolutions")) { - const agent = new https.Agent({ - rejectUnauthorized: false, - }); - - const axiosInstance = axios.create({ - headers: { - 'Content-Type': 'application/json', - Accept: "*", - }, - httpsAgent: agent - }); - // get all solutions object from backend try { let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/solutions`); @@ -46,6 +51,344 @@ export default defineEventHandler(async (event) => { } } } + + if (event.path.startsWith("/api/getSelectedSolutionsByClient")) { + // get selected solutions 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}/selectedSolutionsByCustomer/${filteredClient}`); + selectedSolutionsByClient = 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/getSelectedSolutionsBySolution")) { + // get selected solutions object by asset from backend + let filteredSolution = null; + const path = event._path; + const pathSegments = path.split('/'); + filteredSolution = pathSegments[pathSegments.length - 1]; + + try { + let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedSolutionsBySolutionName/${filteredSolution}`); + selectedSolutionsBySolution = 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/getSolution")) { + // get solution object from backend + let solutionId = null; + const path = event._path; + const pathSegments = path.split('/'); + solutionId = pathSegments[pathSegments.length - 1]; + + try { + let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/solutions/${solutionId}`); + solution = 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/updateSolution")) { + const body = await readBody(event) + // update the solution in the backend + try { + let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/solutions`, 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/addSol")) { + const body = await readBody(event) + // add the solution in the backend + try { + let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/solutions`, 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/deleteSolution")) { + let solId = null; + const path = event._path; + const pathSegments = path.split('/'); + solId = pathSegments[pathSegments.length - 1]; + + // delete the solution in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/solutions/${solId}`); + } 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/addTodoSol")) { + const body = await readBody(event) + // add the solution todo in the backend + try { + let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/checklistSolutionsTodos`, 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/updateSolTodo")) { + const body = await readBody(event) + // update the solution todo in the backend + try { + let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/checklistSolutionsTodos`, 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/getTodosSolution")) { + // get solution 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}/checklistSolutionsTodos/${itemId}`); + solTodosBySolutionId = 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/deleteTodosSol")) { + let solId = null; + const path = event._path; + const pathSegments = path.split('/'); + solId = pathSegments[pathSegments.length - 1]; + + // delete the mvt todos in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/checklistSolutionsTodosBySolutionID/${solId}`); + } 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/deleteSolTodo")) { + let solId = null; + const path = event._path; + const pathSegments = path.split('/'); + solId = pathSegments[pathSegments.length - 1]; + + // delete the mvt in the backend + try { + let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/checklistSolutionsTodos/${solId}`); + } 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 { solutions, errorMsg }; \ No newline at end of file +export { solutions, solution, selectedSolutionsByClient, selectedSolutionsBySolution, solTodosBySolutionId, insertId, errorMsg }; \ No newline at end of file