feat: exercise api
This commit is contained in:
@@ -1,9 +1,27 @@
|
|||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import {
|
import { z } from "zod";
|
||||||
createTRPCRouter,
|
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
|
||||||
protectedProcedure,
|
import { exercises, topicToExercise } from "~/server/db/schema";
|
||||||
publicProcedure,
|
|
||||||
} from "~/server/api/trpc";
|
|
||||||
import { exercises } 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),
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user