diff --git a/src/server/api/routers/exercise.ts b/src/server/api/routers/exercise.ts index bf4bdac..c3080fb 100644 --- a/src/server/api/routers/exercise.ts +++ b/src/server/api/routers/exercise.ts @@ -1,9 +1,27 @@ import { eq } from "drizzle-orm"; -import { - createTRPCRouter, - protectedProcedure, - publicProcedure, -} from "~/server/api/trpc"; -import { exercises } from "~/server/db/schema"; +import { z } from "zod"; +import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc"; +import { exercises, topicToExercise } from "~/server/db/schema"; -export const exerciseRouter = createTRPCRouter({}); +export const exerciseRouter = createTRPCRouter({ + getAllTopicExercises: protectedProcedure + .input(z.object({ topicId: z.number() })) + .query(async ({ ctx, input }) => { + return await ctx.db.query.topicToExercise.findMany({ + where: eq(topicToExercise.topicId, input.topicId), + with: { exercise: true }, + }); + }), + getExercise: protectedProcedure + .input( + z.object({ + exerciseId: z.number(), + includeExercises: z.boolean().optional().default(false), + }), + ) + .query(async ({ ctx, input }) => { + return await ctx.db.query.exercises.findFirst({ + where: eq(exercises.exerciseId, input.exerciseId), + }); + }), +});