diff --git a/apps/storefront/lib/ai/tools.ts b/apps/storefront/lib/ai/tools.ts index d863021..767eebc 100644 --- a/apps/storefront/lib/ai/tools.ts +++ b/apps/storefront/lib/ai/tools.ts @@ -158,6 +158,12 @@ export function createTools(customerId: string, _conversationId?: string) { } const payment = await db.selectPayment(orderId); + if (!payment) { + return { + refunded: false as const, + reason: `No payment record found for order ${orderId}`, + }; + } const refund = await issueRefund({ chargeId: payment.chargeId, amount: order.total.amount, diff --git a/apps/storefront/lib/db/index.ts b/apps/storefront/lib/db/index.ts index 0b1d245..5f39934 100644 --- a/apps/storefront/lib/db/index.ts +++ b/apps/storefront/lib/db/index.ts @@ -196,14 +196,14 @@ export async function selectOrder( } // Orders placed before the payments launch have no payment row. -export async function selectPayment(orderId: string): Promise { +export async function selectPayment(orderId: string): Promise { const [row] = await db .select() .from(payments) .where(eq(payments.orderId, orderId)) .limit(1); - return row as Payment; + return row; } export async function selectOrders(