MED-194: fix order view for single analysis
MED-194: fix order view for single analysis
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
|
|
||||||
|
import { getLogger } from '@/packages/shared/src/logger';
|
||||||
import { retrieveOrder } from '@lib/data/orders';
|
import { retrieveOrder } from '@lib/data/orders';
|
||||||
|
|
||||||
import { getMedipostDispatchTries } from '~/lib/services/audit.service';
|
import { getMedipostDispatchTries } from '~/lib/services/audit.service';
|
||||||
@@ -10,6 +11,10 @@ import loadEnv from '../handler/load-env';
|
|||||||
import validateApiKey from '../handler/validate-api-key';
|
import validateApiKey from '../handler/validate-api-key';
|
||||||
|
|
||||||
export const POST = async (request: NextRequest) => {
|
export const POST = async (request: NextRequest) => {
|
||||||
|
const logger = await getLogger();
|
||||||
|
const ctx = {
|
||||||
|
api: '/job/medipost-retry-dispatch',
|
||||||
|
};
|
||||||
loadEnv();
|
loadEnv();
|
||||||
|
|
||||||
const { medusaOrderId } = await request.json();
|
const { medusaOrderId } = await request.json();
|
||||||
@@ -36,15 +41,15 @@ export const POST = async (request: NextRequest) => {
|
|||||||
medusaOrder,
|
medusaOrder,
|
||||||
});
|
});
|
||||||
await sendOrderToMedipost({ medusaOrderId, orderedAnalysisElements });
|
await sendOrderToMedipost({ medusaOrderId, orderedAnalysisElements });
|
||||||
console.info('Successfully sent order to medipost');
|
logger.info(ctx, 'Successfully sent order to medipost');
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
message: 'Successfully sent order to medipost',
|
message: 'Successfully sent order to medipost',
|
||||||
},
|
},
|
||||||
{ status: 200 },
|
{ status: 200 },
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (error) {
|
||||||
console.error('Error sending order to medipost', e);
|
logger.error({ ...ctx, error }, 'Error sending order to medipost');
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
message: 'Failed to send order to medipost',
|
message: 'Failed to send order to medipost',
|
||||||
|
|||||||
@@ -71,7 +71,14 @@ function OrderConfirmedLoadingWrapper({
|
|||||||
<PageHeader title={<Trans i18nKey="cart:orderConfirmed.title" />} />
|
<PageHeader title={<Trans i18nKey="cart:orderConfirmed.title" />} />
|
||||||
<Divider />
|
<Divider />
|
||||||
<div className="small:grid-cols-[1fr_360px] grid grid-cols-1 gap-x-40 gap-y-6 lg:px-4">
|
<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 />
|
<Divider />
|
||||||
<OrderItems medusaOrder={medusaOrder} />
|
<OrderItems medusaOrder={medusaOrder} />
|
||||||
<CartTotals medusaOrder={medusaOrder} />
|
<CartTotals medusaOrder={medusaOrder} />
|
||||||
|
|||||||
@@ -60,24 +60,22 @@ export async function HomeMenuNavigation(props: {
|
|||||||
</span>
|
</span>
|
||||||
</Card>
|
</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}>
|
<Link href={pathsConfig.app.cart}>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
className="relative mr-0 h-10 cursor-pointer border-1 px-4 py-2"
|
className="relative mr-0 h-10 cursor-pointer border-1 px-4 py-2"
|
||||||
>
|
>
|
||||||
<ShoppingCart className="stroke-[1.5px]" />
|
<ShoppingCart className="stroke-[1.5px]" />
|
||||||
<Trans
|
<Trans i18nKey="common:shoppingCart" />{' '}
|
||||||
i18nKey="common:shoppingCartCount"
|
{hasCartItems && (
|
||||||
values={{ count: cartQuantityTotal }}
|
<>
|
||||||
/>
|
(
|
||||||
|
<span className="text-success font-bold">
|
||||||
|
{cartQuantityTotal}
|
||||||
|
</span>
|
||||||
|
)
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
<UserNotifications userId={user.id} />
|
<UserNotifications userId={user.id} />
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ export default function OrderBlock({
|
|||||||
items={itemsOther}
|
items={itemsOther}
|
||||||
title="orders:table.otherOrders"
|
title="orders:table.otherOrders"
|
||||||
order={{
|
order={{
|
||||||
|
medusaOrderId: analysisOrder?.medusa_order_id,
|
||||||
|
id: analysisOrder?.id,
|
||||||
status: analysisOrder?.status,
|
status: analysisOrder?.status,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { SupabaseClient } from '@supabase/supabase-js';
|
import { SupabaseClient } from '@supabase/supabase-js';
|
||||||
|
|
||||||
|
import { getLogger } from '@kit/shared/logger';
|
||||||
import type { UuringuVastus } from '@kit/shared/types/medipost-analysis';
|
import type { UuringuVastus } from '@kit/shared/types/medipost-analysis';
|
||||||
import { toArray } from '@kit/shared/utils';
|
import { toArray } from '@kit/shared/utils';
|
||||||
import { Database } from '@kit/supabase/database';
|
import { Database } from '@kit/supabase/database';
|
||||||
@@ -463,13 +464,19 @@ class UserAnalysesApi {
|
|||||||
medusaOrderId?: string;
|
medusaOrderId?: string;
|
||||||
orderStatus: AnalysisOrderStatus;
|
orderStatus: AnalysisOrderStatus;
|
||||||
}) {
|
}) {
|
||||||
|
const logger = await getLogger();
|
||||||
const orderIdParam = orderId;
|
const orderIdParam = orderId;
|
||||||
const medusaOrderIdParam = medusaOrderId;
|
const medusaOrderIdParam = medusaOrderId;
|
||||||
|
const ctx = {
|
||||||
|
action: 'update-analysis-order-status',
|
||||||
|
orderId,
|
||||||
|
medusaOrderId,
|
||||||
|
orderStatus,
|
||||||
|
};
|
||||||
|
|
||||||
console.info(
|
logger.info(ctx, 'Updating order');
|
||||||
`Updating order id=${orderId} medusaOrderId=${medusaOrderId} status=${orderStatus}`,
|
|
||||||
);
|
|
||||||
if (!orderIdParam && !medusaOrderIdParam) {
|
if (!orderIdParam && !medusaOrderIdParam) {
|
||||||
|
logger.error(ctx, 'Missing orderId or medusaOrderId');
|
||||||
throw new Error('Either orderId or medusaOrderId must be provided');
|
throw new Error('Either orderId or medusaOrderId must be provided');
|
||||||
}
|
}
|
||||||
await this.client
|
await this.client
|
||||||
|
|||||||
Reference in New Issue
Block a user