import {createRoute, OpenAPIHono, z} from "@hono/zod-openapi"; import {postLabelData} from "../controller/postRunningNr.js"; import {apiHit} from "../../../globalUtils/apiHits.js"; import {pickedup} from "../controller/pickedup.js"; const app = new OpenAPIHono(); const PostRunningNr = z.object({ sscc: z.string().optional().openapi({example: "00090103830005710997"}), runningNr: z.string().optional().openapi({example: "localhost"}), areaFrom: z.string().optional().openapi({example: "The server we are going to connect to"}), completed: z.boolean().optional().openapi({example: true}), all: z.boolean().optional().openapi({example: false}), }); app.openapi( createRoute({ tags: ["ocme"], summary: "Picks up a pallet in the system.", method: "patch", description: "removes the pallet(s) from showing as needed to be picked up, we clear everything related to the pallet number to reduce the risk of a mix, passing `all` will just clear everything that is pending.", path: "/pickedup", request: { body: { content: { "application/json": {schema: PostRunningNr}, }, }, }, responses: { 200: { content: { "application/json": { schema: z.object({ success: z.boolean().openapi({example: true}), message: z.string().openapi({example: "Starter"}), // data: z // .array(z.object({sscc: z.string().optional()})) // .optional() // .openapi({example: []}), }), }, }, description: "Response message", }, 400: { content: { "application/json": { schema: z.object({ success: z.boolean().openapi({example: false}), message: z.string().optional().openapi({example: "Internal Server error"}), data: z.array(z.object({})).optional().openapi({example: []}), }), }, }, description: "Internal Server Error", }, // 401: { // content: { // "application/json": { // schema: z.object({message: z.string().optional().openapi({example: "Unauthenticated"})}), // }, // }, // description: "Unauthorized", // }, 500: { content: { "application/json": { schema: z.object({message: z.string().optional().openapi({example: "Internal Server error"})}), }, }, description: "Internal Server Error", }, }, }), async (c) => { // make sure we have a vaid user being accessed thats really logged in try { const data = await c.req.json(); apiHit(c, {endpoint: "api/ocme/pickedup", lastBody: data}); const postPallet = await pickedup(data); return c.json({success: postPallet.success, message: postPallet.message, data: postPallet.data}, 200); } catch (error) { return c.json({success: false, message: "There was an error getting ocmeInfo data", data: error}, 400); } } ); export default app;