feat: course api
This commit is contained in:
@@ -1,9 +1,24 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { z } from "zod";
|
||||
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
|
||||
import { courses } from "~/server/db/schema";
|
||||
|
||||
export const courseRouter = createTRPCRouter({});
|
||||
export const courseRouter = createTRPCRouter({
|
||||
getAllCourses: protectedProcedure.query(async ({ ctx }) => {
|
||||
return await ctx.db.query.courses.findMany();
|
||||
}),
|
||||
getCourse: protectedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
courseId: z.number(),
|
||||
includeLessons: z.boolean().optional().default(false),
|
||||
}),
|
||||
)
|
||||
.query(async ({ ctx, input }) => {
|
||||
const lessons = input.includeLessons ? true : undefined;
|
||||
return await ctx.db.query.courses.findFirst({
|
||||
where: eq(courses.courseId, input.courseId),
|
||||
with: { lessons },
|
||||
});
|
||||
}),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user