feat: restore deleted document

This commit is contained in:
Ephraim Atta-Duncan
2024-06-13 15:57:16 +00:00
committed by Mythie
parent 1a55f4253b
commit feef4b1a12
11 changed files with 462 additions and 8 deletions

View File

@ -16,6 +16,7 @@ import { getDocumentAndSenderByToken } from '@documenso/lib/server-only/document
import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id';
import { moveDocumentToTeam } from '@documenso/lib/server-only/document/move-document-to-team';
import { resendDocument } from '@documenso/lib/server-only/document/resend-document';
import { restoreDocument } from '@documenso/lib/server-only/document/restore-document';
import { searchDocumentsWithKeyword } from '@documenso/lib/server-only/document/search-documents-with-keyword';
import { sendDocument } from '@documenso/lib/server-only/document/send-document';
import { updateDocumentSettings } from '@documenso/lib/server-only/document/update-document-settings';
@ -35,6 +36,7 @@ import {
ZGetDocumentWithDetailsByIdQuerySchema,
ZMoveDocumentsToTeamSchema,
ZResendDocumentMutationSchema,
ZRestoreDocumentMutationSchema,
ZSearchDocumentsMutationSchema,
ZSendDocumentMutationSchema,
ZSetPasswordForDocumentMutationSchema,
@ -187,6 +189,34 @@ export const documentRouter = router({
}
}),
restoreDocument: authenticatedProcedure
.input(ZRestoreDocumentMutationSchema)
.mutation(async ({ input, ctx }) => {
try {
const { id, teamId } = input;
const userId = ctx.user.id;
const restoredDocument = await restoreDocument({
id,
userId,
teamId,
requestMetadata: extractNextApiRequestMetadata(ctx.req),
});
console.log(restoredDocument);
return restoredDocument;
} catch (err) {
console.error(err);
throw new TRPCError({
code: 'BAD_REQUEST',
message: 'We were unable to restore this document. Please try again later.',
});
}
}),
findDocumentAuditLogs: authenticatedProcedure
.input(ZFindDocumentAuditLogsQuerySchema)
.query(async ({ input, ctx }) => {

View File

@ -159,6 +159,11 @@ export const ZDeleteDraftDocumentMutationSchema = z.object({
teamId: z.number().min(1).optional(),
});
export const ZRestoreDocumentMutationSchema = z.object({
id: z.number().min(1),
teamId: z.number().min(1).optional(),
});
export type TDeleteDraftDocumentMutationSchema = z.infer<typeof ZDeleteDraftDocumentMutationSchema>;
export const ZSearchDocumentsMutationSchema = z.object({