fix: self sign team documents

This commit is contained in:
Ephraim Atta-Duncan
2024-11-15 20:25:09 +00:00
parent 21d68f3275
commit 634dc2afd0
5 changed files with 22 additions and 7 deletions

View File

@ -17,8 +17,5 @@
}, },
"[typescriptreact]": { "[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
} }
} }

View File

@ -313,6 +313,7 @@ export const EditDocumentForm = ({
if (hasSameOwnerAsRecipient) { if (hasSameOwnerAsRecipient) {
await selfSignDocument({ await selfSignDocument({
documentId: document.id, documentId: document.id,
teamId: team?.id,
}); });
router.push(`/sign/${recipients[0].token}`); router.push(`/sign/${recipients[0].token}`);

View File

@ -12,12 +12,14 @@ import { insertFormValuesInPdf } from '../pdf/insert-form-values-in-pdf';
export type SelfSignDocumentOptions = { export type SelfSignDocumentOptions = {
documentId: number; documentId: number;
userId: number; userId: number;
teamId?: number;
requestMetadata?: RequestMetadata; requestMetadata?: RequestMetadata;
}; };
export const selfSignDocument = async ({ export const selfSignDocument = async ({
documentId, documentId,
userId, userId,
teamId,
requestMetadata, requestMetadata,
}: SelfSignDocumentOptions) => { }: SelfSignDocumentOptions) => {
const user = await prisma.user.findFirstOrThrow({ const user = await prisma.user.findFirstOrThrow({
@ -31,11 +33,24 @@ export const selfSignDocument = async ({
}, },
}); });
const document = await prisma.document.findFirstOrThrow({ const document = await prisma.document.findUnique({
where: { where: {
id: documentId, id: documentId,
...(teamId
? {
team: {
id: teamId,
members: {
some: {
userId,
},
},
},
}
: {
userId, userId,
teamId: null, teamId: null,
}),
}, },
include: { include: {
Recipient: { Recipient: {

View File

@ -458,11 +458,12 @@ export const documentRouter = router({
.input(ZSelfSignDocumentMutationSchema) .input(ZSelfSignDocumentMutationSchema)
.mutation(async ({ input, ctx }) => { .mutation(async ({ input, ctx }) => {
try { try {
const { documentId } = input; const { documentId, teamId } = input;
return await selfSignDocument({ return await selfSignDocument({
userId: ctx.user.id, userId: ctx.user.id,
documentId, documentId,
teamId,
requestMetadata: extractNextApiRequestMetadata(ctx.req), requestMetadata: extractNextApiRequestMetadata(ctx.req),
}); });
} catch (err) { } catch (err) {

View File

@ -172,6 +172,7 @@ export const ZSendDocumentMutationSchema = z.object({
export const ZSelfSignDocumentMutationSchema = z.object({ export const ZSelfSignDocumentMutationSchema = z.object({
documentId: z.number(), documentId: z.number(),
teamId: z.number().optional(),
}); });
export const ZSetPasswordForDocumentMutationSchema = z.object({ export const ZSetPasswordForDocumentMutationSchema = z.object({