feat: add route for retrieving a single document by id

This commit is contained in:
Catalin Pit
2023-11-23 10:02:22 +02:00
parent 6d6c93539f
commit b3008fb272
2 changed files with 33 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id';
import { getDocuments } from '@documenso/lib/server-only/public-api/get-documents';
import { contract } from '@documenso/trpc/api-contract/contract';
import { createNextRoute, createNextRouter } from '@documenso/trpc/server/public-api/ts-rest';
@@ -19,6 +20,14 @@ const router = createNextRoute(contract, {
},
};
},
getDocument: async (args) => {
const document = await getDocumentById(args.params.id);
return {
status: 200,
body: document,
};
},
});
const nextRouter = createNextRouter(contract, router);

View File

@@ -24,14 +24,29 @@ const SuccessfulResponse = z.object({
totalPages: z.number(),
});
export const contract = c.router({
getDocuments: {
method: 'GET',
path: '/documents',
query: GetDocumentsQuery,
responses: {
200: SuccessfulResponse,
export const contract = c.router(
{
getDocuments: {
method: 'GET',
path: '/documents',
query: GetDocumentsQuery,
responses: {
200: SuccessfulResponse,
},
summary: 'Get all documents',
},
getDocument: {
method: 'GET',
path: `/documents/:id`,
responses: {
200: DocumentSchema,
},
summary: 'Get a single document',
},
summary: 'Get all documents for a user',
},
});
{
baseHeaders: z.object({
authorization: z.string(),
}),
},
);