fix: migrate billing to RR7

This commit is contained in:
David Nguyen
2025-02-21 01:16:23 +11:00
parent 991ce5ff46
commit 139bc265c7
10 changed files with 456 additions and 15 deletions

View File

@ -4,6 +4,8 @@ import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { AppError } from '@documenso/lib/errors/app-error';
import { setAvatarImage } from '@documenso/lib/server-only/profile/set-avatar-image';
import { getSubscriptionsByUserId } from '@documenso/lib/server-only/subscription/get-subscriptions-by-user-id';
import { createBillingPortal } from '@documenso/lib/server-only/user/create-billing-portal';
import { createCheckoutSession } from '@documenso/lib/server-only/user/create-checkout-session';
import { deleteUser } from '@documenso/lib/server-only/user/delete-user';
import { findUserSecurityAuditLogs } from '@documenso/lib/server-only/user/find-user-security-audit-logs';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
@ -12,6 +14,7 @@ import { updatePublicProfile } from '@documenso/lib/server-only/user/update-publ
import { adminProcedure, authenticatedProcedure, router } from '../trpc';
import {
ZCreateCheckoutSessionRequestSchema,
ZFindUserSecurityAuditLogsSchema,
ZRetrieveUserByIdQuerySchema,
ZSetProfileImageMutationSchema,
@ -35,6 +38,31 @@ export const profileRouter = router({
return await getUserById({ id });
}),
createBillingPortal: authenticatedProcedure.mutation(async ({ ctx }) => {
return await createBillingPortal({
user: {
id: ctx.user.id,
customerId: ctx.user.customerId,
email: ctx.user.email,
name: ctx.user.name,
},
});
}),
createCheckoutSession: authenticatedProcedure
.input(ZCreateCheckoutSessionRequestSchema)
.mutation(async ({ ctx, input }) => {
return await createCheckoutSession({
user: {
id: ctx.user.id,
customerId: ctx.user.customerId,
email: ctx.user.email,
name: ctx.user.name,
},
priceId: input.priceId,
});
}),
updateProfile: authenticatedProcedure
.input(ZUpdateProfileMutationSchema)
.mutation(async ({ input, ctx }) => {

View File

@ -15,6 +15,10 @@ export const ZRetrieveUserByIdQuerySchema = z.object({
export type TRetrieveUserByIdQuerySchema = z.infer<typeof ZRetrieveUserByIdQuerySchema>;
export const ZCreateCheckoutSessionRequestSchema = z.object({
priceId: z.string().min(1),
});
export const ZUpdateProfileMutationSchema = z.object({
name: z.string().min(1),
signature: z.string(),