feat: added skeleton api routes

This commit is contained in:
2023-12-13 22:34:51 -06:00
parent 1e2d1acfb5
commit 79a866a7bb
7 changed files with 51 additions and 48 deletions

View File

@@ -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

View 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({});

View 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({});

View File

@@ -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));
}),
});

View 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({});

View 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({});

View File

@@ -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({});