feat(11.1-02): update prepare route to fetch agentInitialsData, add 422 guard, pass to preparePdf

- Fetch agentInitialsData alongside agentSignatureData in single DB query
- Add 422 guard returning { error: 'agent-initials-missing' } when agent-initials fields present but no initials saved
- Pass agentInitialsData as 6th arg to preparePdf()
This commit is contained in:
Chandler Copeland
2026-03-21 15:03:14 -06:00
parent fae1cf1b68
commit c876579637

View File

@@ -40,12 +40,13 @@ export async function POST(
const sigFields = (doc.signatureFields as import('@/lib/db/schema').SignatureFieldData[]) ?? [];
const textFields = body.textFillData ?? {};
// Fetch agent's saved signature for embedding at agent-signature field coordinates
// Fetch agent's saved signature and initials for embedding at agent-owned field coordinates
const agentUser = await db.query.users.findFirst({
where: eq(users.id, session.user.id),
columns: { agentSignatureData: true },
columns: { agentSignatureData: true, agentInitialsData: true },
});
const agentSignatureData = agentUser?.agentSignatureData ?? null;
const agentInitialsData = agentUser?.agentInitialsData ?? null;
// Guard: if document has agent-signature fields but no signature saved, block prepare
const hasAgentSigFields = sigFields.some(f => getFieldType(f) === 'agent-signature');
@@ -56,7 +57,16 @@ export async function POST(
);
}
await preparePdf(srcPath, destPath, textFields, sigFields, agentSignatureData);
// Guard: agent-initials fields present but no initials saved
const hasAgentInitialsFields = sigFields.some(f => getFieldType(f) === 'agent-initials');
if (hasAgentInitialsFields && !agentInitialsData) {
return Response.json(
{ error: 'agent-initials-missing', message: 'No agent initials saved. Go to Profile to save your initials first.' },
{ status: 422 }
);
}
await preparePdf(srcPath, destPath, textFields, sigFields, agentSignatureData, agentInitialsData);
const [updated] = await db
.update(documents)