diff --git a/server/services/dataMart/controller/getFifoIndex.ts b/server/services/dataMart/controller/getFifoIndex.ts new file mode 100644 index 0000000..19dc518 --- /dev/null +++ b/server/services/dataMart/controller/getFifoIndex.ts @@ -0,0 +1,18 @@ +import { desc } from "drizzle-orm"; +import { db } from "../../../../database/dbclient.js"; +import { fifoIndex } from "../../../../database/schema/fifoIndex.js"; + +export const getFifoIndex = async () => { + let articles: any = []; + try { + const res = await db + .select() + .from(fifoIndex) + .orderBy(desc(fifoIndex.add_Date)); + articles = res; + } catch (error) { + articles = error; + } + + return articles; +}; diff --git a/server/services/dataMart/dataMartService.ts b/server/services/dataMart/dataMartService.ts index 612b50e..449fd1f 100644 --- a/server/services/dataMart/dataMartService.ts +++ b/server/services/dataMart/dataMartService.ts @@ -7,6 +7,7 @@ import getOpenOrders from "./route/getOpenOrders.js"; import getDeliveryByDate from "./route/getDeliveryDateByRange.js"; import fakeEDI from "./route/fakeEDI.js"; import addressCorrections from "./route/getCityStateData.js"; +import fifoIndex from "./route/getFifoIndex.js"; const app = new OpenAPIHono(); @@ -19,6 +20,7 @@ const routes = [ getDeliveryByDate, fakeEDI, addressCorrections, + fifoIndex, ] as const; const appRoutes = routes.forEach((route) => { diff --git a/server/services/dataMart/route/getCurrentQuerys.ts b/server/services/dataMart/route/getCurrentQuerys.ts index facc022..c4a936b 100644 --- a/server/services/dataMart/route/getCurrentQuerys.ts +++ b/server/services/dataMart/route/getCurrentQuerys.ts @@ -103,6 +103,14 @@ const current: any = [ "Returns all addresses that will not process correctly in tms due to incorrect city state setup.", //criteria: "address", // uncomment this out once the improt process can be faster }, + { + name: "Fifo index", + endpoint: "/api/datamart/getfifoindex", + // description: "Returns all inventory, by default excludes running numebrs, also excludes inv locations.", + description: + "Returns fifo index for all pallets shipped within the last 90 days.", + //criteria: "address", // uncomment this out once the improt process can be faster + }, ]; app.openapi( diff --git a/server/services/dataMart/route/getFifoIndex.ts b/server/services/dataMart/route/getFifoIndex.ts new file mode 100644 index 0000000..5dcd1c2 --- /dev/null +++ b/server/services/dataMart/route/getFifoIndex.ts @@ -0,0 +1,48 @@ +import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { apiHit } from "../../../globalUtils/apiHits.js"; +import { responses } from "../../../globalUtils/routeDefs/responses.js"; +import { getActiveAv } from "../controller/getActiveArticles.js"; +import { getFifoIndex } from "../controller/getFifoIndex.js"; + +const app = new OpenAPIHono({ strict: false }); +const EomStat = z.object({ + plant: z.string().openapi({ example: "Salt Lake City" }), + userRan: z.string().openapi({ example: "smith034" }), + eomSheetVersion: z.string().openapi({ example: "0.0.223" }), +}); + +app.openapi( + createRoute({ + tags: ["dataMart"], + summary: "Returns all the fifo data.", + method: "get", + path: "/getfifoindex", + + responses: responses(), + }), + async (c) => { + //const body = await c.req.json(); + // make sure we have a vaid user being accessed thats really logged in + apiHit(c, { endpoint: "/getfifoindex" }); + try { + return c.json( + { + success: true, + message: "Fifo index data for the last 90days", + data: await getFifoIndex(), + }, + 200 + ); + } catch (error) { + return c.json( + { + success: false, + message: "There was an error getting fifo index data.", + data: error, + }, + 400 + ); + } + } +); +export default app;