MED-194: fix order view for single analysis

MED-194: fix order view for single analysis
This commit is contained in:
danelkungla
2025-10-07 09:42:04 +03:00
committed by GitHub
5 changed files with 38 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
import { NextRequest, NextResponse } from 'next/server';
import { getLogger } from '@/packages/shared/src/logger';
import { retrieveOrder } from '@lib/data/orders';
import { getMedipostDispatchTries } from '~/lib/services/audit.service';
@@ -10,6 +11,10 @@ import loadEnv from '../handler/load-env';
import validateApiKey from '../handler/validate-api-key';
export const POST = async (request: NextRequest) => {
const logger = await getLogger();
const ctx = {
api: '/job/medipost-retry-dispatch',
};
loadEnv();
const { medusaOrderId } = await request.json();
@@ -36,15 +41,15 @@ export const POST = async (request: NextRequest) => {
medusaOrder,
});
await sendOrderToMedipost({ medusaOrderId, orderedAnalysisElements });
console.info('Successfully sent order to medipost');
logger.info(ctx, 'Successfully sent order to medipost');
return NextResponse.json(
{
message: 'Successfully sent order to medipost',
},
{ status: 200 },
);
} catch (e) {
console.error('Error sending order to medipost', e);
} catch (error) {
logger.error({ ...ctx, error }, 'Error sending order to medipost');
return NextResponse.json(
{
message: 'Failed to send order to medipost',

View File

@@ -71,7 +71,14 @@ function OrderConfirmedLoadingWrapper({
<PageHeader title={<Trans i18nKey="cart:orderConfirmed.title" />} />
<Divider />
<div className="small:grid-cols-[1fr_360px] grid grid-cols-1 gap-x-40 gap-y-6 lg:px-4">
<OrderDetails order={order} />
<OrderDetails
order={{
id: order.medusa_order_id,
created_at: order.created_at,
location: null,
serviceProvider: null,
}}
/>
<Divider />
<OrderItems medusaOrder={medusaOrder} />
<CartTotals medusaOrder={medusaOrder} />

View File

@@ -60,24 +60,22 @@ export async function HomeMenuNavigation(props: {
</span>
</Card>
{hasCartItems && (
<Button
className="relative mr-0 h-10 cursor-pointer border-1 px-4 py-2"
variant="ghost"
>
<span className="flex items-center text-nowrap">{totalValue}</span>
</Button>
)}
<Link href={pathsConfig.app.cart}>
<Button
variant="ghost"
className="relative mr-0 h-10 cursor-pointer border-1 px-4 py-2"
>
<ShoppingCart className="stroke-[1.5px]" />
<Trans
i18nKey="common:shoppingCartCount"
values={{ count: cartQuantityTotal }}
/>
<Trans i18nKey="common:shoppingCart" />{' '}
{hasCartItems && (
<>
(
<span className="text-success font-bold">
{cartQuantityTotal}
</span>
)
</>
)}
</Button>
</Link>
<UserNotifications userId={user.id} />

View File

@@ -81,6 +81,8 @@ export default function OrderBlock({
items={itemsOther}
title="orders:table.otherOrders"
order={{
medusaOrderId: analysisOrder?.medusa_order_id,
id: analysisOrder?.id,
status: analysisOrder?.status,
}}
/>

View File

@@ -1,5 +1,6 @@
import { SupabaseClient } from '@supabase/supabase-js';
import { getLogger } from '@kit/shared/logger';
import type { UuringuVastus } from '@kit/shared/types/medipost-analysis';
import { toArray } from '@kit/shared/utils';
import { Database } from '@kit/supabase/database';
@@ -463,13 +464,19 @@ class UserAnalysesApi {
medusaOrderId?: string;
orderStatus: AnalysisOrderStatus;
}) {
const logger = await getLogger();
const orderIdParam = orderId;
const medusaOrderIdParam = medusaOrderId;
const ctx = {
action: 'update-analysis-order-status',
orderId,
medusaOrderId,
orderStatus,
};
console.info(
`Updating order id=${orderId} medusaOrderId=${medusaOrderId} status=${orderStatus}`,
);
logger.info(ctx, 'Updating order');
if (!orderIdParam && !medusaOrderIdParam) {
logger.error(ctx, 'Missing orderId or medusaOrderId');
throw new Error('Either orderId or medusaOrderId must be provided');
}
await this.client