import { NextResponse } from "next/server"; import Stripe from "stripe"; // import { createClient } from "@supabase/supabase-js"; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY); // const supabase = createClient(process.env.SUPABASE_SERVICE_ROLE_KEY); export async function POST(request) { const body = await request.text(); const sig = request.headers.get("stripe-signature"); let event; try { event = stripe.webhooks.constructEvent( body, sig, process.env.STRIPE_WEBHOOK_SECRET ); } catch (err) { return NextResponse.json( { error: `Webhook Error: ${err.message}` }, { status: 400 } ); } // Handle the event switch (event.type) { case "customer.subscription.updated": case "customer.subscription.deleted": const subscription = event.data.object; await handleSubscriptionChange(subscription); break; default: console.log(`Unhandled event type ${event.type}`); } return NextResponse.json({ received: true }); } // async function handleSubscriptionChange(subscription) { // const { customer, id, status, current_period_end } = subscription; // Update the user's subscription data // const { error } = await supabase // .from("subscription_data") // .update({ // subscription_id: id, // status, // current_period_end: new Date(current_period_end * 1000).toISOString(), // active_subscription: status === "active", // }) // .eq("customer_id", customer); // if (error) { // console.error("Error updating subscription data:", error); // } // }