import {createRoute, OpenAPIHono, z} from "@hono/zod-openapi"; import {apiHit} from "../../../globalUtils/apiHits.js"; import {getShipmentPallets} from "../controller/getShipmentPallets.js"; const app = new OpenAPIHono(); const ShipmentID = z.object({ shipmentID: z.string().optional().openapi({example: "14558"}), }); app.openapi( createRoute({ tags: ["ocme"], summary: "Post New running number to be picked up.", method: "post", path: "/getshipmentpallets", request: { body: { content: { "application/json": {schema: ShipmentID}, }, }, }, 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/getshipmentpallets", lastBody: data}); if (!data.shipmentID) { return c.json( {success: false, message: "You are missing the shipment id please try again.", data: []}, 400 ); } const shiptmentData = await getShipmentPallets(data.shipmentID); return c.json( {success: shiptmentData.success, message: shiptmentData.message, data: shiptmentData.data ?? []}, 200 ); } catch (error) { return c.json({success: false, message: "There was an error getting the shipment data.", data: error}, 400); } } ); export default app;