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 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 { getDocuments } from '@documenso/lib/server-only/public-api/get-documents';
import { contract } from '@documenso/trpc/api-contract/contract'; import { contract } from '@documenso/trpc/api-contract/contract';
import { createNextRoute, createNextRouter } from '@documenso/trpc/server/public-api/ts-rest'; 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); const nextRouter = createNextRouter(contract, router);

View File

@@ -24,14 +24,29 @@ const SuccessfulResponse = z.object({
totalPages: z.number(), totalPages: z.number(),
}); });
export const contract = c.router({ export const contract = c.router(
getDocuments: { {
method: 'GET', getDocuments: {
path: '/documents', method: 'GET',
query: GetDocumentsQuery, path: '/documents',
responses: { query: GetDocumentsQuery,
200: SuccessfulResponse, 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(),
}),
},
);