diff --git a/server/services/logistics/controller/dm/ordersIn/customMappings/abbottTruckList.ts b/server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts similarity index 100% rename from server/services/logistics/controller/dm/ordersIn/customMappings/abbottTruckList.ts rename to server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts diff --git a/server/services/logistics/controller/dm/ordersIn/customMappings/standardOrders.ts b/server/services/logistics/controller/dm/ordersIn/mappings/standardOrders.ts similarity index 93% rename from server/services/logistics/controller/dm/ordersIn/customMappings/standardOrders.ts rename to server/services/logistics/controller/dm/ordersIn/mappings/standardOrders.ts index e742e1b..d452f63 100644 --- a/server/services/logistics/controller/dm/ordersIn/customMappings/standardOrders.ts +++ b/server/services/logistics/controller/dm/ordersIn/mappings/standardOrders.ts @@ -50,6 +50,7 @@ export const standardOrders = async (data: any, user: any) => { }; } const plantToken = s.filter((s) => s.name === "plantToken"); + const arrayBuffer = await data.arrayBuffer(); const buffer = Buffer.from(arrayBuffer); @@ -110,11 +111,15 @@ export const standardOrders = async (data: any, user: any) => { // map everything out for each order const nOrder = newOrders.map((o: any) => { + const invoice = i.filter( + (i: any) => i.deliveryAddress === parseInt(customerID) + ); + if (!invoice) { + return; + } return { customerId: parseInt(customerID), - invoiceAddressId: i.filter( - (i: any) => i.deliveryAddress === parseInt(customerID) - )[0].invoiceAddress, // matched to the default invoice address + invoiceAddressId: invoice[0].invoiceAddress, // matched to the default invoice address customerOrderNo: o.CustomerOrderNumber, orderDate: new Date(Date.now()).toLocaleString("en-US"), positions: [ @@ -143,8 +148,10 @@ export const standardOrders = async (data: any, user: any) => { postedOrders.push({ customer: customerID, + //totalOrders: orders?.length(), success: posting.success, message: posting.message, + data: posting.data, }); } diff --git a/server/services/logistics/controller/dm/ordersIn/ordersIn.ts b/server/services/logistics/controller/dm/ordersIn/ordersIn.ts index ca0991d..d2a9376 100644 --- a/server/services/logistics/controller/dm/ordersIn/ordersIn.ts +++ b/server/services/logistics/controller/dm/ordersIn/ordersIn.ts @@ -1,5 +1,5 @@ -import { abbottOrders } from "./customMappings/abbottTruckList.js"; -import { standardOrders } from "./customMappings/standardOrders.js"; +import { abbottOrders } from "./mappings/abbottTruckList.js"; +import { standardOrders } from "./mappings/standardOrders.js"; export const ordersIn = async (data: any, user: any) => { /** @@ -15,7 +15,7 @@ export const ordersIn = async (data: any, user: any) => { // run the standard orders in const standard = await standardOrders(data["postOrders"], user); success = standard.success ?? false; - message = standard.message ?? "Error posting Abbott Orders"; + message = standard.message ?? "Error posting Standard Orders"; orderData = standard.data; } diff --git a/server/services/logistics/route/dm/bulkOrdersIn.ts b/server/services/logistics/route/dm/bulkOrdersIn.ts index b1f14f4..c19e8bf 100644 --- a/server/services/logistics/route/dm/bulkOrdersIn.ts +++ b/server/services/logistics/route/dm/bulkOrdersIn.ts @@ -2,6 +2,7 @@ import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; import { responses } from "../../../../globalUtils/routeDefs/responses.js"; import { ordersIn } from "../../controller/dm/ordersIn/ordersIn.js"; import { verify } from "hono/jwt"; +import { tryCatch } from "../../../../globalUtils/tryCatch.js"; const app = new OpenAPIHono(); @@ -39,19 +40,34 @@ app.openapi( // if (body["fileType"] === "standard") { // console.log(`doing standard orders in.`); // } - try { - const payload = await verify(token, process.env.JWT_SECRET!); - const orders = await ordersIn(body, payload.user); + const { data: payload, error: pe } = await tryCatch( + verify(token, process.env.JWT_SECRET!) + ); - return c.json({ - success: orders.success, - message: orders.message, - data: orders.data, - }); - } catch (error) { - console.log(error); + if (pe) { return c.json({ success: false, message: "Unauthorized" }, 401); } + + const { data: orders, error } = await tryCatch( + ordersIn(body, payload.user) + ); + + if (error) { + return c.json( + { + success: false, + message: "Error posting forecast", + data: error, + }, + 400 + ); + } + + return c.json({ + success: orders?.success ?? false, + message: orders?.message ?? "Error posting forecast", + data: orders?.data ?? [], + }); } ); export default app;