feat: dictate next signers in signing ordeR

This commit is contained in:
Ephraim Atta-Duncan
2025-02-14 10:32:18 +00:00
parent 2ff330f9d4
commit 4189a34de0
15 changed files with 985 additions and 150 deletions

View File

@ -266,15 +266,14 @@ export const documentRouter = router({
/**
* @public
*
* Todo: Refactor to updateDocument.
*/
setSettingsForDocument: authenticatedProcedure
updateDocument: authenticatedProcedure
.meta({
openapi: {
method: 'POST',
path: '/document/update',
summary: 'Update document',
description: 'Update an existing document',
tags: ['Document'],
},
})
@ -286,9 +285,9 @@ export const documentRouter = router({
const userId = ctx.user.id;
if (Object.values(meta).length > 0) {
if (Object.keys(meta).length > 0) {
await upsertDocumentMeta({
userId: ctx.user.id,
userId,
teamId,
documentId,
subject: meta.subject,
@ -301,6 +300,7 @@ export const documentRouter = router({
distributionMethod: meta.distributionMethod,
signingOrder: meta.signingOrder,
emailSettings: meta.emailSettings,
modifyNextSigner: meta.modifyNextSigner,
requestMetadata: ctx.metadata,
});
}

View File

@ -251,6 +251,7 @@ export const ZUpdateDocumentRequestSchema = z.object({
language: ZDocumentMetaLanguageSchema.optional(),
typedSignatureEnabled: ZDocumentMetaTypedSignatureEnabledSchema.optional(),
emailSettings: ZDocumentEmailSettingsSchema.optional(),
modifyNextSigner: z.boolean().optional(),
})
.optional(),
});

View File

@ -437,13 +437,22 @@ export const recipientRouter = router({
completeDocumentWithToken: procedure
.input(ZCompleteDocumentWithTokenMutationSchema)
.mutation(async ({ input, ctx }) => {
const { token, documentId, authOptions } = input;
const { token, documentId, authOptions, nextSigner } = input;
console.log(
'completeDocumentWithToken == recipient-router',
token,
documentId,
authOptions,
nextSigner,
);
return await completeDocumentWithToken({
token,
documentId,
authOptions,
userId: ctx.user?.id,
nextSigner,
requestMetadata: extractNextApiRequestMetadata(ctx.req),
});
}),

View File

@ -212,6 +212,12 @@ export const ZCompleteDocumentWithTokenMutationSchema = z.object({
token: z.string(),
documentId: z.number(),
authOptions: ZRecipientActionAuthSchema.optional(),
nextSigner: z
.object({
email: z.string().email(),
name: z.string(),
})
.optional(),
});
export type TCompleteDocumentWithTokenMutationSchema = z.infer<