UNPKG

vibecode-party-starter

Version:

A Next.js starter project for vibecoding Saas apps with auth, payments, email, and more

43 lines (38 loc) 1.17 kB
import { auth } from "@clerk/nextjs/server" import { NextResponse } from "next/server" import { stripe, isStripeConfigured } from "@/lib/stripe" export async function POST(request: Request) { try { // Check if Stripe is configured if (!isStripeConfigured()) { return NextResponse.json( { error: "Payment system not configured" }, { status: 503 } ) } // Check authentication const authResult = await auth() if (!authResult.userId) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }) } const { amount } = await request.json() // We can safely use stripe here because we checked isStripeConfigured() const paymentIntent = await stripe!.paymentIntents.create({ amount, currency: "usd", metadata: { userId: authResult.userId, type: "donation" } }) return NextResponse.json({ clientSecret: paymentIntent.client_secret, }) } catch (error) { console.error("Error creating payment intent:", error) return NextResponse.json( { error: "Error creating payment intent" }, { status: 500 } ) } }