46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
'use server';
|
|
|
|
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session';
|
|
import { createDocumentMeta } from '@documenso/lib/server-only/document-meta/create-document-meta';
|
|
import { sendDocument } from '@documenso/lib/server-only/document/send-document';
|
|
import { updateDocument } from '@documenso/lib/server-only/document/update-document';
|
|
import { TAddSubjectFormSchema } from '@documenso/ui/primitives/document-flow/add-subject.types';
|
|
|
|
export type CompleteDocumentActionInput = TAddSubjectFormSchema & {
|
|
documentId: number;
|
|
};
|
|
|
|
export const completeDocument = async ({ documentId, email }: CompleteDocumentActionInput) => {
|
|
'use server';
|
|
|
|
const { id: userId } = await getRequiredServerComponentSession();
|
|
|
|
if (!email.message && !email.subject) {
|
|
return await sendDocument({
|
|
userId,
|
|
documentId,
|
|
});
|
|
}
|
|
|
|
const createDocumentMetaResponse = await createDocumentMeta({
|
|
emailBody: email.message,
|
|
emailSubject: email.subject,
|
|
});
|
|
|
|
await updateDocument({
|
|
documentId,
|
|
data: {
|
|
DocumentMeta: {
|
|
connect: {
|
|
id: createDocumentMetaResponse.id,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
await sendDocument({
|
|
userId,
|
|
documentId,
|
|
});
|
|
};
|