diff --git a/app/api/job/handler/sync-analysis-results.ts b/app/api/job/handler/sync-analysis-results.ts index c5a2323..e666916 100644 --- a/app/api/job/handler/sync-analysis-results.ts +++ b/app/api/job/handler/sync-analysis-results.ts @@ -6,11 +6,12 @@ type ProcessedMessage = { hasPartialAnalysisResponse: boolean; hasFullAnalysisResponse: boolean; medusaOrderId: string | undefined; + analysisOrderId: number | undefined; }; type GroupedResults = { - processed: Pick[]; - waitingForResults: Pick[]; + processed: Pick[]; + waitingForResults: Pick[]; }; export default async function syncAnalysisResults() { @@ -37,14 +38,14 @@ export default async function syncAnalysisResults() { } const groupedResults = processedMessages.reduce((acc, result) => { - if (result.medusaOrderId) { + if (result.analysisOrderId) { if (result.hasAnalysisResponse) { if (!acc.processed) { acc.processed = []; } acc.processed.push({ messageId: result.messageId, - medusaOrderId: result.medusaOrderId, + analysisOrderId: result.analysisOrderId, }); } else { if (!acc.waitingForResults) { @@ -52,7 +53,7 @@ export default async function syncAnalysisResults() { } acc.waitingForResults.push({ messageId: result.messageId, - medusaOrderId: result.medusaOrderId, + analysisOrderId: result.analysisOrderId, }); } } diff --git a/app/api/job/test-medipost-responses/route.ts b/app/api/job/test-medipost-responses/route.ts index c745b98..7c2944d 100644 --- a/app/api/job/test-medipost-responses/route.ts +++ b/app/api/job/test-medipost-responses/route.ts @@ -37,7 +37,7 @@ export async function POST(request: NextRequest) { }, orderedAnalysisElementsIds: idsToSend.map(({ analysisElementId }) => analysisElementId).filter(Boolean) as number[], orderedAnalysesIds: idsToSend.map(({ analysisId }) => analysisId).filter(Boolean) as number[], - orderId: medusaOrderId, + orderId: medreportOrder.id, orderCreatedAt: new Date(medreportOrder.created_at), }); diff --git a/app/api/order/medipost-test-response/route.ts b/app/api/order/medipost-test-response/route.ts index 9ce8c41..262c1f0 100644 --- a/app/api/order/medipost-test-response/route.ts +++ b/app/api/order/medipost-test-response/route.ts @@ -29,7 +29,7 @@ export async function POST(request: Request) { }, orderedAnalysisElementsIds: orderedAnalysisElementsIds.map(({ analysisElementId }) => analysisElementId).filter(Boolean) as number[], orderedAnalysesIds: orderedAnalysisElementsIds.map(({ analysisId }) => analysisId).filter(Boolean) as number[], - orderId: medusaOrderId, + orderId: analysisOrder.id, orderCreatedAt: new Date(analysisOrder.created_at), }); diff --git a/app/home/(user)/(dashboard)/order/[orderId]/confirmed/page.tsx b/app/home/(user)/(dashboard)/order/[orderId]/confirmed/page.tsx index d72c530..9c3f42f 100644 --- a/app/home/(user)/(dashboard)/order/[orderId]/confirmed/page.tsx +++ b/app/home/(user)/(dashboard)/order/[orderId]/confirmed/page.tsx @@ -27,7 +27,7 @@ async function OrderConfirmedPage(props: { }) { const params = await props.params; - const order = await getAnalysisOrder({ orderId: Number(params.orderId) }).catch(() => null); + const order = await getAnalysisOrder({ analysisOrderId: Number(params.orderId) }).catch(() => null); if (!order) { redirect(pathsConfig.app.myOrders); } diff --git a/app/home/(user)/(dashboard)/order/[orderId]/page.tsx b/app/home/(user)/(dashboard)/order/[orderId]/page.tsx index c84fb99..8bc90d7 100644 --- a/app/home/(user)/(dashboard)/order/[orderId]/page.tsx +++ b/app/home/(user)/(dashboard)/order/[orderId]/page.tsx @@ -27,7 +27,7 @@ async function OrderConfirmedPage(props: { }) { const params = await props.params; - const order = await getAnalysisOrder({ orderId: Number(params.orderId) }).catch(() => null); + const order = await getAnalysisOrder({ analysisOrderId: Number(params.orderId) }).catch(() => null); if (!order) { redirect(pathsConfig.app.myOrders); } diff --git a/lib/services/medipost.service.ts b/lib/services/medipost.service.ts index a096083..6fb4302 100644 --- a/lib/services/medipost.service.ts +++ b/lib/services/medipost.service.ts @@ -194,12 +194,13 @@ export async function readPrivateMessageResponse({ excludedMessageIds, }: { excludedMessageIds: string[]; -}): Promise<{ messageId: string | null; hasAnalysisResponse: boolean; hasPartialAnalysisResponse: boolean; hasFullAnalysisResponse: boolean; medusaOrderId: string | undefined }> { +}): Promise<{ messageId: string | null; hasAnalysisResponse: boolean; hasPartialAnalysisResponse: boolean; hasFullAnalysisResponse: boolean; medusaOrderId: string | undefined; analysisOrderId: number | undefined }> { let messageId: string | null = null; let hasAnalysisResponse = false; let hasPartialAnalysisResponse = false; let hasFullAnalysisResponse = false; let medusaOrderId: string | undefined = undefined; + let analysisOrderId: number | undefined = undefined; try { const privateMessage = await getLatestPrivateMessageListItem({ excludedMessageIds }); @@ -212,6 +213,7 @@ export async function readPrivateMessageResponse({ hasPartialAnalysisResponse: false, hasFullAnalysisResponse: false, medusaOrderId: undefined, + analysisOrderId: undefined }; } @@ -220,16 +222,15 @@ export async function readPrivateMessageResponse({ ); const messageResponse = privateMessageContent?.Saadetis?.Vastus; - medusaOrderId = privateMessageContent?.Saadetis?.Tellimus?.ValisTellimuseId || messageResponse?.ValisTellimuseId; + analysisOrderId = Number(privateMessageContent?.Saadetis?.Tellimus?.ValisTellimuseId || messageResponse?.ValisTellimuseId); - const hasInvalidOrderId = !medusaOrderId || !medusaOrderId.toString().startsWith('order_'); + const hasInvalidOrderId = isNaN(analysisOrderId) if (hasInvalidOrderId || !messageResponse) { await createMedipostActionLog({ action: 'sync_analysis_results_from_medipost', xml: privateMessageXml, hasAnalysisResults: false, - medusaOrderId: hasInvalidOrderId ? undefined : medusaOrderId, }); return { messageId, @@ -237,9 +238,13 @@ export async function readPrivateMessageResponse({ hasPartialAnalysisResponse: false, hasFullAnalysisResponse: false, medusaOrderId: hasInvalidOrderId ? undefined : medusaOrderId, + analysisOrderId: hasInvalidOrderId ? undefined : analysisOrderId }; } + const analysisOrder = await getAnalysisOrder({ analysisOrderId: analysisOrderId }) + medusaOrderId = analysisOrder.medusa_order_id; + let order: Tables<{ schema: 'medreport' }, 'analysis_orders'>; try { order = await getAnalysisOrder({ medusaOrderId }); @@ -264,7 +269,7 @@ export async function readPrivateMessageResponse({ console.warn(`Failed to process private message id=${messageId}, message=${(e as Error).message}`); } - return { messageId, hasAnalysisResponse, hasPartialAnalysisResponse, hasFullAnalysisResponse, medusaOrderId }; + return { messageId, hasAnalysisResponse, hasPartialAnalysisResponse, hasFullAnalysisResponse, medusaOrderId, analysisOrderId }; } async function saveAnalysisGroup( @@ -616,7 +621,7 @@ export async function sendOrderToMedipost({ lastName: account.last_name ?? '', phone: account.phone ?? '', }, - orderId: medusaOrderId, + orderId: medreportOrder.id, orderCreatedAt: new Date(medreportOrder.created_at), comment: '', }); diff --git a/lib/services/medipostTest.service.ts b/lib/services/medipostTest.service.ts index 4459d0c..4b1d1ca 100644 --- a/lib/services/medipostTest.service.ts +++ b/lib/services/medipostTest.service.ts @@ -68,7 +68,7 @@ export async function composeOrderTestResponseXML({ }; orderedAnalysisElementsIds: number[]; orderedAnalysesIds: number[]; - orderId: string; + orderId: number; orderCreatedAt: Date; }) { const analysisElements = await getAnalysisElementsAdmin({ ids: orderedAnalysisElementsIds }); diff --git a/lib/services/medipostXML.service.ts b/lib/services/medipostXML.service.ts index 2cac69b..2b457d5 100644 --- a/lib/services/medipostXML.service.ts +++ b/lib/services/medipostXML.service.ts @@ -45,7 +45,7 @@ export async function composeOrderXML({ lastName: string; phone: string; }; - orderId: string; + orderId: number; orderCreatedAt: Date; comment?: string; }) { diff --git a/lib/services/order.service.ts b/lib/services/order.service.ts index f1eae85..eced8f9 100644 --- a/lib/services/order.service.ts +++ b/lib/services/order.service.ts @@ -82,10 +82,10 @@ export async function updateAnalysisOrderStatus({ export async function getAnalysisOrder({ medusaOrderId, - orderId, + analysisOrderId, }: { medusaOrderId?: string; - orderId?: number; + analysisOrderId?: number; }) { const query = getSupabaseServerAdminClient() .schema('medreport') @@ -93,15 +93,15 @@ export async function getAnalysisOrder({ .select('*') if (medusaOrderId) { query.eq('medusa_order_id', medusaOrderId); - } else if (orderId) { - query.eq('id', orderId); + } else if (analysisOrderId) { + query.eq('id', analysisOrderId); } else { throw new Error('Either medusaOrderId or orderId must be provided'); } const { data: order, error } = await query.single(); if (error) { - throw new Error(`Failed to get order by medusaOrderId=${medusaOrderId} or orderId=${orderId}, message=${error.message}, data=${JSON.stringify(order)}`); + throw new Error(`Failed to get order by medusaOrderId=${medusaOrderId} or analysisOrderId=${analysisOrderId}, message=${error.message}, data=${JSON.stringify(order)}`); } return order; } diff --git a/lib/templates/medipost-order.ts b/lib/templates/medipost-order.ts index e226774..f6da882 100644 --- a/lib/templates/medipost-order.ts +++ b/lib/templates/medipost-order.ts @@ -8,8 +8,7 @@ const isProd = process.env.NODE_ENV === 'production'; export const getPais = ( sender: string, recipient: string, - createdAt: Date, - orderId: string, + orderId: number, packageName = "OL", ) => { if (isProd) { diff --git a/packages/features/medusa-storefront/src/lib/data/orders.ts b/packages/features/medusa-storefront/src/lib/data/orders.ts index c20931f..cf0231c 100644 --- a/packages/features/medusa-storefront/src/lib/data/orders.ts +++ b/packages/features/medusa-storefront/src/lib/data/orders.ts @@ -54,7 +54,6 @@ export const listOrders = async ( }, headers, next, - cache: "force-cache", }) .then(({ orders }) => orders) .catch((err) => medusaError(err)) diff --git a/packages/features/medusa-storefront/src/lib/data/products.ts b/packages/features/medusa-storefront/src/lib/data/products.ts index 4b1e250..b65efe9 100644 --- a/packages/features/medusa-storefront/src/lib/data/products.ts +++ b/packages/features/medusa-storefront/src/lib/data/products.ts @@ -73,7 +73,6 @@ export const listProducts = async ({ }, headers, next, - cache: "force-cache", } ) .then(({ products, count }) => {