mirror of
https://github.com/documenso/documenso.git
synced 2025-11-19 19:21:39 +10:00
91 lines
2.7 KiB
TypeScript
91 lines
2.7 KiB
TypeScript
import { setAvatarImage } from '@documenso/lib/server-only/profile/set-avatar-image';
|
|
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';
|
|
import { updateProfile } from '@documenso/lib/server-only/user/update-profile';
|
|
|
|
import { adminProcedure, authenticatedProcedure, router } from '../trpc';
|
|
import {
|
|
ZCreateCheckoutSessionRequestSchema,
|
|
ZFindUserSecurityAuditLogsSchema,
|
|
ZRetrieveUserByIdQuerySchema,
|
|
ZSetProfileImageMutationSchema,
|
|
ZUpdateProfileMutationSchema,
|
|
} from './schema';
|
|
|
|
export const profileRouter = router({
|
|
findUserSecurityAuditLogs: authenticatedProcedure
|
|
.input(ZFindUserSecurityAuditLogsSchema)
|
|
.query(async ({ input, ctx }) => {
|
|
return await findUserSecurityAuditLogs({
|
|
userId: ctx.user.id,
|
|
...input,
|
|
});
|
|
}),
|
|
|
|
getUser: adminProcedure.input(ZRetrieveUserByIdQuerySchema).query(async ({ input }) => {
|
|
const { id } = input;
|
|
|
|
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 }) => {
|
|
const { name, signature } = input;
|
|
|
|
return await updateProfile({
|
|
userId: ctx.user.id,
|
|
name,
|
|
signature,
|
|
requestMetadata: ctx.metadata.requestMetadata,
|
|
});
|
|
}),
|
|
|
|
deleteAccount: authenticatedProcedure.mutation(async ({ ctx }) => {
|
|
return await deleteUser({
|
|
id: ctx.user.id,
|
|
});
|
|
}),
|
|
|
|
setProfileImage: authenticatedProcedure
|
|
.input(ZSetProfileImageMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const { bytes, teamId } = input;
|
|
|
|
return await setAvatarImage({
|
|
userId: ctx.user.id,
|
|
teamId,
|
|
bytes,
|
|
requestMetadata: ctx.metadata,
|
|
});
|
|
}),
|
|
});
|