fix: update limits handler

This commit is contained in:
Mythie
2023-10-26 12:26:29 +11:00
parent a2902ee7c0
commit 407fa0047c
2 changed files with 5 additions and 19 deletions

View File

@ -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) {

View File

@ -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'],