always pick the most recent subscription
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
import { NotFoundError, resolver } from "blitz";
|
||||
import { z } from "zod";
|
||||
|
||||
import db from "db";
|
||||
import db, { Prisma, SubscriptionStatus } from "db";
|
||||
import { updateSubscriptionPlan } from "integrations/paddle";
|
||||
|
||||
const Body = z.object({
|
||||
@ -9,7 +9,13 @@ const Body = z.object({
|
||||
});
|
||||
|
||||
export default resolver.pipe(resolver.zod(Body), resolver.authorize(), async ({ planId }, ctx) => {
|
||||
const subscription = await db.subscription.findFirst({ where: { organizationId: ctx.session.orgId } });
|
||||
const subscription = await db.subscription.findFirst({
|
||||
where: {
|
||||
organizationId: ctx.session.orgId,
|
||||
status: { not: SubscriptionStatus.deleted },
|
||||
},
|
||||
orderBy: { lastEventTime: Prisma.SortOrder.desc },
|
||||
});
|
||||
if (!subscription) {
|
||||
throw new NotFoundError();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { resolver } from "blitz";
|
||||
|
||||
import db, { SubscriptionStatus } from "db";
|
||||
import db, { Prisma, SubscriptionStatus } from "db";
|
||||
|
||||
export default resolver.pipe(resolver.authorize(), async (_ = null, { session }) => {
|
||||
if (!session.orgId) return null;
|
||||
@ -8,7 +8,14 @@ export default resolver.pipe(resolver.authorize(), async (_ = null, { session })
|
||||
return db.subscription.findFirst({
|
||||
where: {
|
||||
organizationId: session.orgId,
|
||||
OR: [{ status: { not: SubscriptionStatus.deleted } }, { cancellationEffectiveDate: { gt: new Date() } }],
|
||||
OR: [
|
||||
{ status: { not: SubscriptionStatus.deleted } },
|
||||
{
|
||||
status: SubscriptionStatus.deleted,
|
||||
cancellationEffectiveDate: { gt: new Date() },
|
||||
},
|
||||
],
|
||||
},
|
||||
orderBy: { lastEventTime: Prisma.SortOrder.desc },
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user