Openstatus www.openstatus.dev
at main 35 lines 799 B view raw
1import Stripe from "stripe"; 2 3import { env } from "../../env"; 4 5export const stripe = new Stripe(env.STRIPE_SECRET_KEY ?? "", { 6 apiVersion: "2023-08-16", 7 appInfo: { 8 name: "OpenStatus", 9 version: "0.1.0", 10 }, 11}); 12 13export async function cancelSubscription(customer?: string) { 14 if (!customer) return; 15 16 try { 17 const subscriptionId = await stripe.subscriptions 18 .list({ 19 customer, 20 }) 21 .then((res) => res.data[0]?.id); 22 23 if (!subscriptionId) return; 24 25 return await stripe.subscriptions.update(subscriptionId, { 26 cancel_at_period_end: true, 27 cancellation_details: { 28 comment: "Customer deleted their OpenStatus project.", 29 }, 30 }); 31 } catch (error) { 32 console.log("Error cancelling Stripe subscription", error); 33 return; 34 } 35}