Files
documenso/packages/lib/server-only/recipient/get-is-recipient-turn.ts
T

38 lines
941 B
TypeScript

import { prisma } from '@documenso/prisma';
import { DocumentSigningOrder, EnvelopeType } from '@prisma/client';
import { isRecipientTurnBySigningOrder } from '../../utils/recipient-groups';
export type GetIsRecipientTurnOptions = {
token: string;
};
export async function getIsRecipientsTurnToSign({ token }: GetIsRecipientTurnOptions) {
const envelope = await prisma.envelope.findFirstOrThrow({
where: {
type: EnvelopeType.DOCUMENT,
recipients: {
some: {
token,
},
},
},
include: {
documentMeta: true,
recipients: true,
},
});
if (envelope.documentMeta?.signingOrder !== DocumentSigningOrder.SEQUENTIAL) {
return true;
}
const currentRecipient = envelope.recipients.find((recipient) => recipient.token === token);
if (!currentRecipient) {
return false;
}
return isRecipientTurnBySigningOrder(envelope.recipients, currentRecipient);
}