From 0caf8094de588e64b3dcda99d023d39e62bbbf5a Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Wed, 11 Jun 2025 20:53:17 -0500 Subject: [PATCH] refactor(command log): added in the command log tracking into the 3 we currently have --- .../controller/materials/consumeMaterial.ts | 11 +++- .../controller/materials/returnMaterial.ts | 8 +++ .../logistics/route/removeAsNonReusable.ts | 62 +++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 server/services/logistics/route/removeAsNonReusable.ts diff --git a/server/services/logistics/controller/materials/consumeMaterial.ts b/server/services/logistics/controller/materials/consumeMaterial.ts index 49bc1df..be85aec 100644 --- a/server/services/logistics/controller/materials/consumeMaterial.ts +++ b/server/services/logistics/controller/materials/consumeMaterial.ts @@ -5,6 +5,9 @@ import { query } from "../../../sqlServer/prodSqlServer.js"; import { createLog } from "../../../logger/logger.js"; import { prodEndpointCreation } from "../../../../globalUtils/createUrl.js"; +import { tryCatch } from "../../../../globalUtils/tryCatch.js"; +import { db } from "../../../../../database/dbclient.js"; +import { commandLog } from "../../../../../database/schema/commandLog.js"; type Data = { runningNr: string; @@ -34,7 +37,7 @@ export const consumeMaterial = async (data: Data, prod: any) => { if (barcode.length === 0) { return { success: false, - message: "The running number you've is not in stock.", + message: "The running number you've entered not on stock.", }; //throw Error("The provided runningNr is not in stock"); } @@ -56,6 +59,12 @@ export const consumeMaterial = async (data: Data, prod: any) => { }, }); //console.log(results); + const { data: commandL, error: ce } = await tryCatch( + db.insert(commandLog).values({ + commandUsed: "consumeMaterial", + bodySent: data, + }) + ); return { success: true, message: "Material was consumed", diff --git a/server/services/logistics/controller/materials/returnMaterial.ts b/server/services/logistics/controller/materials/returnMaterial.ts index 868b04a..843e7db 100644 --- a/server/services/logistics/controller/materials/returnMaterial.ts +++ b/server/services/logistics/controller/materials/returnMaterial.ts @@ -5,6 +5,8 @@ import { query } from "../../../sqlServer/prodSqlServer.js"; import { createLog } from "../../../logger/logger.js"; import { tryCatch } from "../../../../globalUtils/tryCatch.js"; import { prodEndpointCreation } from "../../../../globalUtils/createUrl.js"; +import { db } from "../../../../../database/dbclient.js"; +import { commandLog } from "../../../../../database/schema/commandLog.js"; type Data = { runningNr: string; laneName: string; @@ -86,6 +88,12 @@ export const returnMaterial = async (data: Data, prod: any) => { }, }); //console.log(results); + const { data: commandL, error: ce } = await tryCatch( + db.insert(commandLog).values({ + commandUsed: "returnMaterial", + bodySent: data, + }) + ); return { success: true, message: "Material was returned", diff --git a/server/services/logistics/route/removeAsNonReusable.ts b/server/services/logistics/route/removeAsNonReusable.ts new file mode 100644 index 0000000..59be569 --- /dev/null +++ b/server/services/logistics/route/removeAsNonReusable.ts @@ -0,0 +1,62 @@ +import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { responses } from "../../../globalUtils/routeDefs/responses.js"; +import { tryCatch } from "../../../globalUtils/tryCatch.js"; +import { apiHit } from "../../../globalUtils/apiHits.js"; +import { removeAsNonReusable } from "../controller/commands/removeAsNonReusable.js"; + +const app = new OpenAPIHono(); + +// const Body = z +// .object({ +// age: z.number().optional().openapi({ example: 90 }), +// //email: z.string().optional().openapi({example: "s.smith@example.com"}), +// type: z.string().optional().openapi({ example: "fg" }), +// }) +// .openapi("User"); +app.openapi( + createRoute({ + tags: ["logistics"], + summary: + "Remove a pallet similar to stock out from the system with a reason", + method: "post", + path: "/removeasreusable", + // request: { + // body: { + // content: { + // "application/json": { schema: Body }, + // }, + // }, + // }, + // description: + // "Provided a running number and lot number you can consume material.", + responses: responses(), + }), + async (c: any) => { + apiHit(c, { endpoint: "/removeasreusable" }); + const { data: body, error: be } = await tryCatch(c.req.json()); + + if (be) { + return { + success: false, + message: "Missing data", + data: [], + }; + } + const { data, error } = await tryCatch(removeAsNonReusable(body)); + + if (error) { + return c.json({ + success: false, + message: "Error getting lane data.", + data: error, + }); + } + + return c.json({ + success: data.success, + message: data.message, + data: data.data, + }); + } +); +export default app;