feat: added skeleton api routes
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
import { languageRouter } from "~/server/api/routers/language";
|
||||
import { userRouter } from "~/server/api/routers/user";
|
||||
import { courseRouter } from "~/server/api/routers/course";
|
||||
import { lessonRouter } from "~/server/api/routers/lesson";
|
||||
import { topicRouter } from "~/server/api/routers/topic";
|
||||
import { exerciseRouter } from "~/server/api/routers/exercise";
|
||||
import { createTRPCRouter } from "~/server/api/trpc";
|
||||
|
||||
/**
|
||||
@@ -9,7 +12,10 @@ import { createTRPCRouter } from "~/server/api/trpc";
|
||||
*/
|
||||
export const appRouter = createTRPCRouter({
|
||||
user: userRouter,
|
||||
language: languageRouter,
|
||||
course: courseRouter,
|
||||
lesson: lessonRouter,
|
||||
topic: topicRouter,
|
||||
exercise: exerciseRouter,
|
||||
});
|
||||
|
||||
// export type definition of API
|
||||
|
||||
9
src/server/api/routers/course.ts
Normal file
9
src/server/api/routers/course.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { courses } from "~/server/db/schema";
|
||||
|
||||
export const courseRouter = createTRPCRouter({});
|
||||
9
src/server/api/routers/exercise.ts
Normal file
9
src/server/api/routers/exercise.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { exercises } from "~/server/db/schema";
|
||||
|
||||
export const exerciseRouter = createTRPCRouter({});
|
||||
@@ -1,31 +0,0 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import { z } from "zod";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { user } from "~/server/db/schema";
|
||||
|
||||
export const languageRouter = createTRPCRouter({
|
||||
getAllLanguages: publicProcedure.query(async ({ ctx }) => {
|
||||
const languages = await ctx.db.query.language.findMany();
|
||||
return { languages };
|
||||
}),
|
||||
getActiveLanguage: protectedProcedure.query(async ({ ctx }) => {
|
||||
const activeLanguage = await ctx.db.query.user.findFirst({
|
||||
columns: { activeLanguageId: true },
|
||||
where: eq(user.userId, ctx.auth.userId),
|
||||
});
|
||||
|
||||
return activeLanguage;
|
||||
}),
|
||||
setActiveLanguage: protectedProcedure
|
||||
.input(z.object({ languageId: z.bigint() }))
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
await ctx.db
|
||||
.update(user)
|
||||
.set({ activeLanguageId: input.languageId })
|
||||
.where(eq(user.userId, ctx.auth.userId));
|
||||
}),
|
||||
});
|
||||
9
src/server/api/routers/lesson.ts
Normal file
9
src/server/api/routers/lesson.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { lessons } from "~/server/db/schema";
|
||||
|
||||
export const lessonRouter = createTRPCRouter({});
|
||||
9
src/server/api/routers/topic.ts
Normal file
9
src/server/api/routers/topic.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { topics } from "~/server/db/schema";
|
||||
|
||||
export const topicRouter = createTRPCRouter({});
|
||||
@@ -1,17 +1,9 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
|
||||
import { user } from "~/server/db/schema";
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
import { users } from "~/server/db/schema";
|
||||
|
||||
export const userRouter = createTRPCRouter({
|
||||
activeLanguage: protectedProcedure.query(async ({ ctx }) => {
|
||||
const currentUser = await ctx.db.query.user.findFirst({
|
||||
columns: {},
|
||||
where: eq(user.userId, ctx.auth.userId),
|
||||
with: { language: true },
|
||||
});
|
||||
|
||||
return {
|
||||
language: currentUser?.language,
|
||||
};
|
||||
}),
|
||||
});
|
||||
export const userRouter = createTRPCRouter({});
|
||||
|
||||
Reference in New Issue
Block a user