From 2b506afb93717b2480fbcb1d0c55e210ca7ed57f Mon Sep 17 00:00:00 2001 From: Vojtech Mares Date: Sun, 25 Jun 2023 16:02:06 +0200 Subject: [PATCH] feat: add api routes for trainings --- src/pages/api/v1/trainings/[id].ts | 17 +++++++++++++++++ src/pages/api/v1/trainings/index.ts | 13 +++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/pages/api/v1/trainings/[id].ts create mode 100644 src/pages/api/v1/trainings/index.ts diff --git a/src/pages/api/v1/trainings/[id].ts b/src/pages/api/v1/trainings/[id].ts new file mode 100644 index 0000000..060af63 --- /dev/null +++ b/src/pages/api/v1/trainings/[id].ts @@ -0,0 +1,17 @@ +import type { NextApiRequest, NextApiResponse } from 'next' +import { prisma } from '~/server/db'; + +// GET /api/v1/trainings/:id +export default async function handle( + req: NextApiRequest, + res: NextApiResponse, +) { + if (req.method !== 'GET') return res.status(405); + + const trainingId = req.query.id as string; + const training = await prisma.training.findUnique({ where: { id: trainingId }}); + + if (!training) return res.status(404).json({ message: 'Not found' }); + + return res.status(200).json(training) +} diff --git a/src/pages/api/v1/trainings/index.ts b/src/pages/api/v1/trainings/index.ts new file mode 100644 index 0000000..9673a4b --- /dev/null +++ b/src/pages/api/v1/trainings/index.ts @@ -0,0 +1,13 @@ +import type { NextApiRequest, NextApiResponse } from 'next' +import { prisma } from '~/server/db'; + +// GET /api/v1/trainings +export default async function handle( + req: NextApiRequest, + res: NextApiResponse, +) { + if (req.method !== 'GET') return res.status(405); + + const trainings = await prisma.training.findMany(); + return res.status(200).json(trainings) +}