diff options
Diffstat (limited to 'apps/web/app/api/v1/highlights/route.ts')
| -rw-r--r-- | apps/web/app/api/v1/highlights/route.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/apps/web/app/api/v1/highlights/route.ts b/apps/web/app/api/v1/highlights/route.ts new file mode 100644 index 00000000..ebb96bae --- /dev/null +++ b/apps/web/app/api/v1/highlights/route.ts @@ -0,0 +1,30 @@ +import { NextRequest } from "next/server"; +import { buildHandler } from "@/app/api/v1/utils/handler"; + +import { zNewHighlightSchema } from "@hoarder/shared/types/highlights"; + +import { adaptPagination, zPagination } from "../utils/pagination"; + +export const dynamic = "force-dynamic"; + +export const GET = (req: NextRequest) => + buildHandler({ + req, + searchParamsSchema: zPagination, + handler: async ({ api, searchParams }) => { + const resp = await api.highlights.getAll({ + ...searchParams, + }); + return { status: 200, resp: adaptPagination(resp) }; + }, + }); + +export const POST = (req: NextRequest) => + buildHandler({ + req, + bodySchema: zNewHighlightSchema, + handler: async ({ body, api }) => { + const resp = await api.highlights.create(body!); + return { status: 200, resp }; + }, + }); |
