mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
This PR is handles the changes required to support envelopes. The new envelope editor/signing page will be hidden during release. The core changes here is to migrate the documents and templates model to a centralized envelopes model. Even though Documents and Templates are removed, from the user perspective they will still exist as we remap envelopes to documents and templates.
45 lines
921 B
TypeScript
45 lines
921 B
TypeScript
import { EnvelopeType } from '@prisma/client';
|
|
|
|
import { prisma } from '@documenso/prisma';
|
|
|
|
import { mapDocumentIdToSecondaryId } from '../../utils/envelope';
|
|
|
|
export const getNextPendingRecipient = async ({
|
|
documentId,
|
|
currentRecipientId,
|
|
}: {
|
|
documentId: number;
|
|
currentRecipientId: number;
|
|
}) => {
|
|
const recipients = await prisma.recipient.findMany({
|
|
where: {
|
|
envelope: {
|
|
type: EnvelopeType.DOCUMENT,
|
|
secondaryId: mapDocumentIdToSecondaryId(documentId),
|
|
},
|
|
},
|
|
orderBy: [
|
|
{
|
|
signingOrder: {
|
|
sort: 'asc',
|
|
nulls: 'last',
|
|
},
|
|
},
|
|
{
|
|
id: 'asc',
|
|
},
|
|
],
|
|
});
|
|
|
|
const currentIndex = recipients.findIndex((r) => r.id === currentRecipientId);
|
|
|
|
if (currentIndex === -1 || currentIndex === recipients.length - 1) {
|
|
return null;
|
|
}
|
|
|
|
return {
|
|
...recipients[currentIndex + 1],
|
|
token: '',
|
|
};
|
|
};
|