feat: add route for retrieving a single document by id
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user