From cfc5f6dd2b8dfa0efafb0e179ef7d65a0af09647 Mon Sep 17 00:00:00 2001 From: Ahmed Elsakaan Date: Sat, 27 Jul 2024 12:55:31 +0100 Subject: [PATCH] feat: trpc modules router --- bun.lockb | Bin 513248 -> 502088 bytes package.json | 12 ++-- src/db/actions/modules.ts | 79 --------------------- src/db/schema/modules.ts | 17 +++++ src/server/index.ts | 2 + src/server/routers/modules.ts | 125 ++++++++++++++++++++++++++++++++++ src/server/trpc.ts | 6 +- 7 files changed, 153 insertions(+), 88 deletions(-) delete mode 100644 src/db/actions/modules.ts create mode 100644 src/server/routers/modules.ts diff --git a/bun.lockb b/bun.lockb index 07bda34c99de22e52979077c46f61825d68f49e3..5b695a108a0d96d72b0ddfb29b12181d5cbc0d55 100755 GIT binary patch delta 112982 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 delta 119125 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 - db.query.modulesTable.findFirst({ - where: and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId)), - }); - -export const getModulesByUserId = (userId: string) => - db - .select() - .from(modulesTable) - .where(eq(modulesTable.user_id, userId)) - .orderBy(desc(modulesTable.lastVisited)); - -const insertModuleSchema = createInsertSchema(modulesTable).omit({ - id: true, - createdAt: true, - modifiedAt: true, - lastVisited: true, -}); - -export const createModule = (data: z.infer) => - db.insert(modulesTable).values({ - ...data, - color: data.color ?? 'default', - icon: data.icon ?? 'default', - archived: data.archived ?? false, - credits: data.credits ?? 0, - }); - -export const archiveModule = (id: string, userId: string) => - db - .update(modulesTable) - .set({ archived: true }) - .where(and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId))); - -export const recoverModule = (id: string, userId: string) => - db - .update(modulesTable) - .set({ archived: false }) - .where(and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId))); - -export const updateModule = async ( - id: string, - userId: string, - data: z.infer, -) => { - const existingModule = await getModuleById(id, userId); - - if (!existingModule) { - throw new Error('Module not found'); - } - - return db - .update(modulesTable) - .set({ - ...data, - color: data.color ?? existingModule.color, - icon: data.icon ?? existingModule.icon, - archived: data.archived ?? existingModule.archived, - credits: data.credits ?? existingModule.credits, - }) - .where(and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId))); -}; - -export const deleteModule = (id: string, userId: string) => - db - .delete(modulesTable) - .where(and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId))); - -export const updateLastVisited = (id: string, userId: string) => - db - .update(modulesTable) - .set({ lastVisited: new Date() }) - .where(and(eq(modulesTable.id, id), eq(modulesTable.user_id, userId))); diff --git a/src/db/schema/modules.ts b/src/db/schema/modules.ts index 7f63eaa5..2ae35d78 100644 --- a/src/db/schema/modules.ts +++ b/src/db/schema/modules.ts @@ -6,6 +6,8 @@ import { timestamp, uuid, } from 'drizzle-orm/pg-core'; +import { createInsertSchema, createSelectSchema } from 'drizzle-zod'; +import { z } from 'zod'; export const modulesTable = pgTable('modules', { id: uuid('id').primaryKey().unique().defaultRandom().notNull(), @@ -21,3 +23,18 @@ export const modulesTable = pgTable('modules', { modifiedAt: timestamp('modified_at').notNull().defaultNow(), lastVisited: timestamp('last_visited').notNull().defaultNow(), }); + +export const insertModuleSchema = createInsertSchema(modulesTable).extend({ + id: z.string().min(1), + icon: z.string().default('default'), + color: z.string().default('default'), + archived: z.boolean().default(false), + credits: z.number().default(0), + createdAt: z.date().default(new Date()), + modifiedAt: z.date().default(new Date()), + lastVisited: z.date().default(new Date()), +}); + +export type InsertModuleInput = z.infer; + +export const selectModuleSchema = createSelectSchema(modulesTable); diff --git a/src/server/index.ts b/src/server/index.ts index 0b272494..64fd29d5 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,8 +1,10 @@ import { earlyAccessRouter } from './routers/early-access'; +import { modulesRouter } from './routers/modules'; import { createCallerFactory, createRouter } from './trpc'; export const appRouter = createRouter({ earlyAccess: earlyAccessRouter, + modules: modulesRouter, }); export type AppRouter = typeof appRouter; diff --git a/src/server/routers/modules.ts b/src/server/routers/modules.ts new file mode 100644 index 00000000..afdc1c39 --- /dev/null +++ b/src/server/routers/modules.ts @@ -0,0 +1,125 @@ +import { createRouter, protectedProcedure } from '../trpc'; +import { + insertModuleSchema, + modulesTable, + selectModuleSchema, +} from '@/db/schema'; +import { and, eq } from 'drizzle-orm'; + +export const modulesRouter = createRouter({ + getById: protectedProcedure + .input(selectModuleSchema.pick({ id: true })) + .query(async ({ ctx, input }) => { + const userId = ctx.user.id; + + return ctx.db.query.modulesTable.findFirst({ + where: (t, { and, eq }) => + and(eq(t.id, input.id), eq(t.user_id, userId)), + }); + }), + + getUserModules: protectedProcedure.query(async ({ ctx }) => { + const userId = ctx.user.id; + + return ctx.db.query.modulesTable.findMany({ + where: (t, { eq }) => eq(t.user_id, userId), + orderBy: (t, { desc }) => desc(t.lastVisited), + }); + }), + + create: protectedProcedure + .input( + insertModuleSchema.pick({ + name: true, + description: true, + code: true, + icon: true, + color: true, + credits: true, + }), + ) + .mutation(async ({ ctx, input }) => { + const userId = ctx.user.id; + + return ctx.db.insert(modulesTable).values({ + ...input, + user_id: userId, + }); + }), + + archive: protectedProcedure + .input(selectModuleSchema.pick({ id: true })) + .mutation(async ({ ctx, input }) => { + const userId = ctx.user.id; + + return ctx.db + .update(modulesTable) + .set({ archived: true }) + .where( + and(eq(modulesTable.id, input.id), eq(modulesTable.user_id, userId)), + ); + }), + + recover: protectedProcedure + .input(selectModuleSchema.pick({ id: true })) + .mutation(async ({ ctx, input }) => { + const userId = ctx.user.id; + + return ctx.db + .update(modulesTable) + .set({ archived: false }) + .where( + and(eq(modulesTable.id, input.id), eq(modulesTable.user_id, userId)), + ); + }), + + update: protectedProcedure + .input( + insertModuleSchema.pick({ + color: true, + icon: true, + name: true, + description: true, + code: true, + credits: true, + id: true, + }), + ) + .mutation(async ({ ctx, input }) => { + const userId = ctx.user.id; + + const { id: moduleId, ...updateData } = input; + + const existingModule = await ctx.db.query.modulesTable.findFirst({ + where: (t, { and, eq }) => + and(eq(t.id, moduleId), eq(t.user_id, userId)), + }); + + if (!existingModule) { + throw new Error('Module not found'); + } + + return ctx.db + .update(modulesTable) + .set({ + ...updateData, + modifiedAt: new Date(), + }) + .where( + and(eq(modulesTable.id, moduleId), eq(modulesTable.user_id, userId)), + ); + }), + + updateLastVisited: protectedProcedure + .input(insertModuleSchema.pick({ id: true })) + .mutation(async ({ ctx, input }) => { + const userId = ctx.user.id; + + return ctx.db + .update(modulesTable) + .set({ lastVisited: new Date() }) + .where( + and(eq(modulesTable.id, input.id), eq(modulesTable.user_id, userId)), + ); + }), +}); diff --git a/src/server/trpc.ts b/src/server/trpc.ts index c0b84dac..74ff0556 100644 --- a/src/server/trpc.ts +++ b/src/server/trpc.ts @@ -35,15 +35,15 @@ export const createRouter = t.router; export const publicProcedure = t.procedure; export const protectedProcedure = t.procedure.use(async ({ next }) => { - const session = await currentUser(); + const user = await currentUser(); - if (!session) { + if (!user) { throw new TRPCError({ code: 'UNAUTHORIZED' }); } return next({ ctx: { - session: { ...session }, + user: { ...user }, }, }); });