diff --git a/lib/api/checkSubscriptionByEmail.ts b/lib/api/checkSubscriptionByEmail.ts index 460a168..62a2320 100644 --- a/lib/api/checkSubscriptionByEmail.ts +++ b/lib/api/checkSubscriptionByEmail.ts @@ -32,11 +32,12 @@ export default async function checkSubscriptionByEmail(email: string) { customer.subscriptions?.data.some((subscription) => { subscription.current_period_end; - active = subscription.items.data.some( - (e) => - (e.price.id === MONTHLY_PRICE_ID && e.price.active === true) || - (e.price.id === YEARLY_PRICE_ID && e.price.active === true) - ); + active = + subscription.items.data.some( + (e) => + (e.price.id === MONTHLY_PRICE_ID && e.price.active === true) || + (e.price.id === YEARLY_PRICE_ID && e.price.active === true) + ) || false; stripeSubscriptionId = subscription.id; currentPeriodStart = subscription.current_period_start * 1000; currentPeriodEnd = subscription.current_period_end * 1000; @@ -44,7 +45,7 @@ export default async function checkSubscriptionByEmail(email: string) { }); return { - active, + active: active || false, stripeSubscriptionId, currentPeriodStart, currentPeriodEnd, diff --git a/lib/api/verifySubscription.ts b/lib/api/verifySubscription.ts index fd32307..b153cc6 100644 --- a/lib/api/verifySubscription.ts +++ b/lib/api/verifySubscription.ts @@ -17,15 +17,7 @@ export default async function verifySubscription( const currentDate = new Date(); - if ( - subscription && - currentDate > subscription.currentPeriodEnd && - !subscription.active - ) { - return null; - } - - if (!subscription || currentDate > subscription.currentPeriodEnd) { + if (!subscription?.active || currentDate > subscription.currentPeriodEnd) { const { active, stripeSubscriptionId, @@ -59,15 +51,21 @@ export default async function verifySubscription( }, }) .catch((err) => console.log(err)); - } + } else if (!active) { + const subscription = await prisma.subscription.findFirst({ + where: { + userId: user.id, + }, + }); - if (!active) { - if (user.username) - // await prisma.user.update({ - // where: { id: user.id }, - // data: { username: null }, - // }); - return null; + if (subscription) + await prisma.subscription.delete({ + where: { + userId: user.id, + }, + }); + + return null; } } diff --git a/lib/api/verifyUser.ts b/lib/api/verifyUser.ts index 847bdaf..6e5fdf5 100644 --- a/lib/api/verifyUser.ts +++ b/lib/api/verifyUser.ts @@ -52,7 +52,7 @@ export default async function verifyUser({ } if (STRIPE_SECRET_KEY) { - const subscribedUser = verifySubscription(user); + const subscribedUser = await verifySubscription(user); if (!subscribedUser) { res.status(401).json({