diff --git a/packages/ee/server-only/limits/handler.ts b/packages/ee/server-only/limits/handler.ts index 357ac527d..f4b1bd4af 100644 --- a/packages/ee/server-only/limits/handler.ts +++ b/packages/ee/server-only/limits/handler.ts @@ -3,9 +3,6 @@ import { NextApiRequest, NextApiResponse } from 'next'; import { getToken } from 'next-auth/jwt'; import { match } from 'ts-pattern'; -import { getFlag } from '@documenso/lib/universal/get-feature-flag'; - -import { SELFHOSTED_PLAN_LIMITS } from './constants'; import { ERROR_CODES } from './errors'; import { TLimitsErrorResponseSchema, TLimitsResponseSchema } from './schema'; import { getServerLimits } from './server'; @@ -17,20 +14,7 @@ export const limitsHandler = async ( try { const token = await getToken({ req }); - const isBillingEnabled = await getFlag('app_billing'); - - if (!isBillingEnabled) { - return res.status(200).json({ - quota: SELFHOSTED_PLAN_LIMITS, - remaining: SELFHOSTED_PLAN_LIMITS, - }); - } - - if (!token?.email) { - throw new Error(ERROR_CODES.UNAUTHORIZED); - } - - const limits = await getServerLimits({ email: token.email }); + const limits = await getServerLimits({ email: token?.email }); return res.status(200).json(limits); } catch (err) { diff --git a/packages/ee/server-only/limits/server.ts b/packages/ee/server-only/limits/server.ts index 78fd8b87a..548ad108a 100644 --- a/packages/ee/server-only/limits/server.ts +++ b/packages/ee/server-only/limits/server.ts @@ -3,13 +3,14 @@ import { DateTime } from 'luxon'; import { stripe } from '@documenso/lib/server-only/stripe'; import { getFlag } from '@documenso/lib/universal/get-feature-flag'; import { prisma } from '@documenso/prisma'; +import { SubscriptionStatus } from '@documenso/prisma/client'; import { FREE_PLAN_LIMITS, SELFHOSTED_PLAN_LIMITS } from './constants'; import { ERROR_CODES } from './errors'; import { ZLimitsSchema } from './schema'; export type GetServerLimitsOptions = { - email?: string; + email?: string | null; }; export const getServerLimits = async ({ email }: GetServerLimitsOptions) => { @@ -42,7 +43,8 @@ export const getServerLimits = async ({ email }: GetServerLimitsOptions) => { let quota = structuredClone(FREE_PLAN_LIMITS); let remaining = structuredClone(FREE_PLAN_LIMITS); - if (user.Subscription?.priceId) { + // Since we store details and allow for past due plans we need to check if the subscription is active. + if (user.Subscription?.status !== SubscriptionStatus.INACTIVE && user.Subscription?.priceId) { const { product } = await stripe.prices .retrieve(user.Subscription.priceId, { expand: ['product'],