♻️ Remove subscription rpc and enable pro features for self-hosted (#1687)

This commit is contained in:
Luke Vella 2025-04-24 11:25:17 +01:00 committed by GitHub
parent 90236e3424
commit d6c6cc47d3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 23 deletions

View file

@ -3,6 +3,7 @@ import { redirect } from "next/navigation";
import { cache } from "react";
import { requireUser } from "@/next-auth";
import { isSelfHosted } from "@/utils/constants";
export const getUser = cache(async () => {
const { userId } = await requireUser();
@ -41,6 +42,6 @@ export const getUser = cache(async () => {
timeZone: user.timeZone ?? undefined,
timeFormat: user.timeFormat ?? undefined,
weekStart: user.weekStart ?? undefined,
isPro: user.subscription?.active ?? false,
isPro: Boolean(isSelfHosted || user.subscription?.active),
};
});

View file

@ -9,7 +9,6 @@ import { z } from "zod";
import { env } from "@/env";
import { getS3Client } from "@/utils/s3";
import { createToken } from "@/utils/session";
import { getSubscriptionStatus } from "@/utils/subscription";
import {
createRateLimitMiddleware,
@ -52,18 +51,6 @@ export const user = router({
},
});
}),
subscription: publicProcedure.query(
async ({ ctx }): Promise<{ legacy?: boolean; active: boolean }> => {
if (!ctx.user || ctx.user.isGuest) {
// guest user can't have an active subscription
return {
active: false,
};
}
return await getSubscriptionStatus(ctx.user.id);
},
),
changeName: privateProcedure
.input(
z.object({

View file

@ -1,5 +1,7 @@
import { prisma } from "@rallly/database";
import { isSelfHosted } from "./constants";
export const getSubscriptionStatus = async (userId: string) => {
const user = await prisma.user.findUnique({
where: {
@ -9,19 +11,12 @@ export const getSubscriptionStatus = async (userId: string) => {
subscription: {
select: {
active: true,
periodEnd: true,
},
},
},
});
if (user?.subscription?.active === true) {
return {
active: true,
} as const;
}
return {
active: false,
} as const;
active: user?.subscription?.active === true || isSelfHosted,
};
};