import { NextResponse } from "next/server"; import { getOrder } from "~/lib/services/order.service"; import { composeOrderTestResponseXML, sendPrivateMessageTestResponse } from "~/lib/services/medipostTest.service"; import { retrieveOrder } from "@lib/data"; import { getAccountAdmin } from "~/lib/services/account.service"; import { getOrderedAnalysisElementsIds } from "~/lib/services/medipost.service"; export async function POST(request: Request) { // const isDev = process.env.NODE_ENV === 'development'; // if (!isDev) { // return NextResponse.json({ error: 'This endpoint is only available in development mode' }, { status: 403 }); // } const { medusaOrderId } = await request.json(); const medusaOrder = await retrieveOrder(medusaOrderId) const medreportOrder = await getOrder({ medusaOrderId }); const account = await getAccountAdmin({ primaryOwnerUserId: medreportOrder.user_id }); const orderedAnalysisElementsIds = await getOrderedAnalysisElementsIds({ medusaOrder }); console.info(`Sending test response for order=${medusaOrderId} with ${orderedAnalysisElementsIds.length} ordered analysis elements`); const messageXml = await composeOrderTestResponseXML({ person: { idCode: account.personal_code!, firstName: account.name ?? '', lastName: account.last_name ?? '', phone: account.phone ?? '', }, orderedAnalysisElementsIds: orderedAnalysisElementsIds.map(({ analysisElementId }) => analysisElementId), orderedAnalysesIds: [], orderId: medusaOrderId, orderCreatedAt: new Date(medreportOrder.created_at), }); try { await sendPrivateMessageTestResponse({ messageXml }); } catch (error) { console.error("Error sending private message test response: ", error); } return NextResponse.json({ success: true }); }