From 81fd9ff7498df8306cf38d186f4ab6f5c253917c Mon Sep 17 00:00:00 2001 From: Mythie Date: Fri, 21 Apr 2023 23:43:54 +1000 Subject: [PATCH] fix: date field appears for all recipients Updates the signing endpoint to only apply changes to the Date field for the current signer. This is made possible through the addition of the `signedAt` column within the database. Resolves the issue with one signer filling the date for all recipients and also ensures that the date of signing on a document won't always be todays date after each recipient has signed. --- apps/web/pages/api/documents/[id]/sign.ts | 7 ++++++- .../migration.sql | 2 ++ packages/prisma/schema.prisma | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/prisma/migrations/20230421134018_doc_214_add_signed_at_field/migration.sql diff --git a/apps/web/pages/api/documents/[id]/sign.ts b/apps/web/pages/api/documents/[id]/sign.ts index 537d7ee72..853dd3500 100644 --- a/apps/web/pages/api/documents/[id]/sign.ts +++ b/apps/web/pages/api/documents/[id]/sign.ts @@ -63,6 +63,7 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) { }, data: { signingStatus: SigningStatus.SIGNED, + signedAt: new Date(), }, }); @@ -86,7 +87,11 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) { where: { documentId: document.id, type: { in: [FieldType.DATE, FieldType.TEXT] }, + recipientId: { in: signedRecipients.map((r) => r.id) }, }, + include: { + Recipient: true, + } }); // Insert fields other than signatures @@ -98,7 +103,7 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) { month: "long", day: "numeric", year: "numeric", - }).format(new Date()) + }).format(field.Recipient?.signedAt ?? new Date()) : field.customText || "", field.positionX, field.positionY, diff --git a/packages/prisma/migrations/20230421134018_doc_214_add_signed_at_field/migration.sql b/packages/prisma/migrations/20230421134018_doc_214_add_signed_at_field/migration.sql new file mode 100644 index 000000000..619e059aa --- /dev/null +++ b/packages/prisma/migrations/20230421134018_doc_214_add_signed_at_field/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Recipient" ADD COLUMN "signedAt" TIMESTAMP(3); diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index e5fa887c3..d326bf5a2 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -92,6 +92,7 @@ model Recipient { name String @default("") @db.VarChar(255) token String expired DateTime? + signedAt DateTime? readStatus ReadStatus @default(NOT_OPENED) signingStatus SigningStatus @default(NOT_SIGNED) sendStatus SendStatus @default(NOT_SENT)