From 47675252ed9b54fa38abdb1e6270f36e5b8273c5 Mon Sep 17 00:00:00 2001 From: k4rli Date: Mon, 4 Aug 2025 18:31:17 +0300 Subject: [PATCH] feat(MED-131): conditional env --- .../cart/montonio-callback/[montonioId]/route.ts | 13 +++++-------- lib/services/medusaCart.service.ts | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/app/home/(user)/(dashboard)/cart/montonio-callback/[montonioId]/route.ts b/app/home/(user)/(dashboard)/cart/montonio-callback/[montonioId]/route.ts index 14b545a..b6e74bc 100644 --- a/app/home/(user)/(dashboard)/cart/montonio-callback/[montonioId]/route.ts +++ b/app/home/(user)/(dashboard)/cart/montonio-callback/[montonioId]/route.ts @@ -8,13 +8,10 @@ import { createI18nServerInstance } from "~/lib/i18n/i18n.server"; import { createOrder } from '~/lib/services/order.service'; import { getOrderedAnalysisElementsIds, sendOrderToMedipost } from '~/lib/services/medipost.service'; -const emailSender = process.env.EMAIL_SENDER; -const siteUrl = process.env.NEXT_PUBLIC_SITE_URL!; - const ANALYSIS_PACKAGES_TYPE_HANDLE = 'analysis-packages'; const MONTONIO_PAID_STATUS = 'PAID'; -const env = z +const env = () => z .object({ emailSender: z .string({ @@ -28,8 +25,8 @@ const env = z .min(1), }) .parse({ - emailSender, - siteUrl, + emailSender: process.env.EMAIL_SENDER, + siteUrl: process.env.NEXT_PUBLIC_SITE_URL!, }); const sendEmail = async ({ email, analysisPackageName, personName, partnerLocationName, language }: { email: string, analysisPackageName: string, personName: string, partnerLocationName: string, language: string }) => { @@ -48,7 +45,7 @@ const sendEmail = async ({ email, analysisPackageName, personName, partnerLocati await mailer .sendEmail({ - from: env.emailSender, + from: env().emailSender, to: email, subject, html, @@ -104,7 +101,7 @@ const handleOrderToken = async (orderToken: string) => { export async function GET(request: Request) { const { language } = await createI18nServerInstance(); - const baseUrl = new URL(env.siteUrl); + const baseUrl = new URL(env().siteUrl); try { const orderToken = new URL(request.url).searchParams.get('order-token'); if (!orderToken) { diff --git a/lib/services/medusaCart.service.ts b/lib/services/medusaCart.service.ts index 3730917..48446e3 100644 --- a/lib/services/medusaCart.service.ts +++ b/lib/services/medusaCart.service.ts @@ -8,10 +8,7 @@ import { StoreCartLineItem, StoreProductVariant } from '@medusajs/types'; import { MontonioOrderHandlerService } from '@/packages/billing/montonio/src'; import { requireUserInServerComponent } from '../server/require-user-in-server-component'; -const medusaBackendPublicUrl = process.env.MEDUSA_BACKEND_PUBLIC_URL!; -const siteUrl = process.env.NEXT_PUBLIC_SITE_URL!; - -const env = z +const env = () => z .object({ medusaBackendPublicUrl: z .string({ @@ -25,8 +22,8 @@ const env = z .min(1), }) .parse({ - medusaBackendPublicUrl, - siteUrl, + medusaBackendPublicUrl: process.env.MEDUSA_BACKEND_PUBLIC_URL!, + siteUrl: process.env.NEXT_PUBLIC_SITE_URL!, }); export async function handleAddToCart({ @@ -81,8 +78,8 @@ export async function handleNavigateToPayment({ language, paymentSessionId }: { } const paymentLink = await new MontonioOrderHandlerService().getMontonioPaymentLink({ - notificationUrl: `${env.medusaBackendPublicUrl}/hooks/payment/montonio_montonio`, - returnUrl: `${env.siteUrl}/home/cart/montonio-callback`, + notificationUrl: `${env().medusaBackendPublicUrl}/hooks/payment/montonio_montonio`, + returnUrl: `${env().siteUrl}/home/cart/montonio-callback`, amount: cart.total, currency: cart.currency_code.toUpperCase(), description: `Order from Medreport`,