mirror of
https://github.com/documenso/documenso.git
synced 2025-11-10 04:22:32 +10:00
95 lines
2.7 KiB
TypeScript
95 lines
2.7 KiB
TypeScript
import { TRPCError } from '@trpc/server';
|
|
|
|
import { createDocumentFromTemplate } from '@documenso/lib/server-only/template/create-document-from-template';
|
|
import { createTemplate } from '@documenso/lib/server-only/template/create-template';
|
|
import { deleteTemplate } from '@documenso/lib/server-only/template/delete-template';
|
|
import { duplicateTemplate } from '@documenso/lib/server-only/template/duplicate-template';
|
|
|
|
import { authenticatedProcedure, router } from '../trpc';
|
|
import {
|
|
ZCreateDocumentFromTemplateMutationSchema,
|
|
ZCreateTemplateMutationSchema,
|
|
ZDeleteTemplateMutationSchema,
|
|
ZDuplicateTemplateMutationSchema,
|
|
} from './schema';
|
|
|
|
export const templateRouter = router({
|
|
createTemplate: authenticatedProcedure
|
|
.input(ZCreateTemplateMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { title, templateDocumentDataId } = input;
|
|
|
|
return await createTemplate({
|
|
title,
|
|
userId: ctx.user.id,
|
|
templateDocumentDataId,
|
|
});
|
|
} catch (err) {
|
|
console.error(err);
|
|
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to create this template. Please try again later.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
createDocumentFromTemplate: authenticatedProcedure
|
|
.input(ZCreateDocumentFromTemplateMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { templateId } = input;
|
|
|
|
return await createDocumentFromTemplate({
|
|
templateId,
|
|
userId: ctx.user.id,
|
|
});
|
|
} catch (err) {
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to create this document. Please try again later.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
duplicateTemplate: authenticatedProcedure
|
|
.input(ZDuplicateTemplateMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { templateId } = input;
|
|
|
|
return await duplicateTemplate({
|
|
templateId,
|
|
userId: ctx.user.id,
|
|
});
|
|
} catch (err) {
|
|
console.error(err);
|
|
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to duplicate the template. Please try again later.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
deleteTemplate: authenticatedProcedure
|
|
.input(ZDeleteTemplateMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { id } = input;
|
|
|
|
const userId = ctx.user.id;
|
|
|
|
return await deleteTemplate({ id, userId });
|
|
} catch (err) {
|
|
console.error(err);
|
|
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to delete this template. Please try again later.',
|
|
});
|
|
}
|
|
}),
|
|
});
|