53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
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) {
|
|
try {
|
|
const { subscriptionId } = await request.json();
|
|
|
|
// Cancel the subscription in Stripe
|
|
const cancelledSubscription = await stripe.subscriptions.cancel(
|
|
subscriptionId
|
|
);
|
|
console.log(cancelledSubscription);
|
|
|
|
// Update the subscription status in Supabase
|
|
// const { error } = await supabase
|
|
// .from("subscription_data")
|
|
// .update({
|
|
// status: cancelledSubscription.status,
|
|
// active_subscription: false,
|
|
// current_period_end: new Date(
|
|
// cancelledSubscription.current_period_end * 1000
|
|
// ).toISOString(),
|
|
// current_period_start: new Date(
|
|
// cancelledSubscription.current_period_start * 1000
|
|
// ).toISOString(),
|
|
// })
|
|
// .eq("subscription_id", subscriptionId);
|
|
|
|
// if (error) {
|
|
// console.error("Error updating subscription data in Supabase:", error);
|
|
// return NextResponse.json(
|
|
// {
|
|
// success: false,
|
|
// error: "Failed to update subscription data when cancelling",
|
|
// },
|
|
// { status: 500 }
|
|
// );
|
|
// }
|
|
|
|
return NextResponse.json({ success: true });
|
|
} catch (error) {
|
|
console.error("Error cancelling subscription:", error);
|
|
return NextResponse.json(
|
|
{ success: false, error: error.message },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|