Refine external signing flow and mobile PDF placement
This commit is contained in:
@@ -183,12 +183,6 @@ const addInviteesToFlow = async (documentId, { invitees }, ownerUserId, context
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (flow.status === 'completed') {
|
||||
const error = new Error('La cadena ya fue completada. Crea una nueva si necesitas más firmas.');
|
||||
error.statusCode = 409;
|
||||
throw error;
|
||||
}
|
||||
|
||||
const { document } = await ensureOwnerCanInvite(documentId, ownerUserId);
|
||||
const existingInvitees = await invitationsRepository.listInvitationsByFlow(flow.id);
|
||||
const currentCount = existingInvitees.length;
|
||||
@@ -198,11 +192,26 @@ const addInviteesToFlow = async (documentId, { invitees }, ownerUserId, context
|
||||
throw error;
|
||||
}
|
||||
|
||||
const existingEmails = new Set(existingInvitees.map((item) => String(item.invitee_email).toLowerCase()));
|
||||
const normalizedInvitees = invitees.map((invitee) => ({
|
||||
name: invitee.name.trim(),
|
||||
email: invitee.email.trim().toLowerCase(),
|
||||
}));
|
||||
const payloadEmails = new Set();
|
||||
|
||||
for (const invitee of normalizedInvitees) {
|
||||
if (payloadEmails.has(invitee.email)) {
|
||||
const error = new Error(`El correo ${invitee.email} está repetido en la solicitud.`);
|
||||
error.statusCode = 409;
|
||||
throw error;
|
||||
}
|
||||
payloadEmails.add(invitee.email);
|
||||
}
|
||||
|
||||
const existingEmails = new Set(
|
||||
flow.status === 'completed'
|
||||
? []
|
||||
: existingInvitees.map((item) => String(item.invitee_email).toLowerCase())
|
||||
);
|
||||
|
||||
for (const invitee of normalizedInvitees) {
|
||||
if (existingEmails.has(invitee.email)) {
|
||||
|
||||
Reference in New Issue
Block a user