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:
@@ -40,12 +40,13 @@ export async function POST(
|
|||||||
const sigFields = (doc.signatureFields as import('@/lib/db/schema').SignatureFieldData[]) ?? [];
|
const sigFields = (doc.signatureFields as import('@/lib/db/schema').SignatureFieldData[]) ?? [];
|
||||||
const textFields = body.textFillData ?? {};
|
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({
|
const agentUser = await db.query.users.findFirst({
|
||||||
where: eq(users.id, session.user.id),
|
where: eq(users.id, session.user.id),
|
||||||
columns: { agentSignatureData: true },
|
columns: { agentSignatureData: true, agentInitialsData: true },
|
||||||
});
|
});
|
||||||
const agentSignatureData = agentUser?.agentSignatureData ?? null;
|
const agentSignatureData = agentUser?.agentSignatureData ?? null;
|
||||||
|
const agentInitialsData = agentUser?.agentInitialsData ?? null;
|
||||||
|
|
||||||
// Guard: if document has agent-signature fields but no signature saved, block prepare
|
// Guard: if document has agent-signature fields but no signature saved, block prepare
|
||||||
const hasAgentSigFields = sigFields.some(f => getFieldType(f) === 'agent-signature');
|
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
|
const [updated] = await db
|
||||||
.update(documents)
|
.update(documents)
|
||||||
|
|||||||
Reference in New Issue
Block a user