diff --git a/src/server/api/context.ts b/src/server/api/context.ts index 9d4772f..f04fac3 100644 --- a/src/server/api/context.ts +++ b/src/server/api/context.ts @@ -1,25 +1,3 @@ -import type { DB } from '@/server/db' - -/** - * 基础 Context - 所有请求都包含的上下文 - */ export interface BaseContext { headers: Headers } - -/** - * 数据库 Context - 通过 db middleware 扩展 - */ -export interface DBContext extends BaseContext { - db: DB -} - -/** - * 认证 Context - 通过 auth middleware 扩展(未来使用) - * - * @example - * export interface AuthContext extends DBContext { - * userId: string - * user: User - * } - */ diff --git a/src/server/api/middlewares/db.middleware.ts b/src/server/api/middlewares/db.middleware.ts deleted file mode 100644 index 77d5f9b..0000000 --- a/src/server/api/middlewares/db.middleware.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { os } from '@/server/api/server' -import { db as dbSingleton } from '@/server/db' - -export const db = os.middleware(async ({ context, next }) => - next({ - context: { - ...context, - db: dbSingleton, - }, - }), -) diff --git a/src/server/api/middlewares/index.ts b/src/server/api/middlewares/index.ts deleted file mode 100644 index 508e3be..0000000 --- a/src/server/api/middlewares/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './db.middleware' diff --git a/src/server/api/routers/todo.router.ts b/src/server/api/routers/todo.router.ts index 36c450a..c8c7c33 100644 --- a/src/server/api/routers/todo.router.ts +++ b/src/server/api/routers/todo.router.ts @@ -1,18 +1,17 @@ import { ORPCError } from '@orpc/server' import { eq } from 'drizzle-orm' -import { db } from '@/server/api/middlewares' import { os } from '@/server/api/server' +import { db } from '@/server/db' import { todoTable } from '@/server/db/schema' -export const list = os.todo.list.use(db).handler(async ({ context }) => { - const todos = await context.db.query.todoTable.findMany({ +export const list = os.todo.list.handler(async () => { + return db.query.todoTable.findMany({ orderBy: (table, { desc }) => desc(table.createdAt), }) - return todos }) -export const create = os.todo.create.use(db).handler(async ({ context, input }) => { - const [newTodo] = await context.db.insert(todoTable).values(input).returning() +export const create = os.todo.create.handler(async ({ input }) => { + const [newTodo] = await db.insert(todoTable).values(input).returning() if (!newTodo) { throw new ORPCError('INTERNAL_SERVER_ERROR', { message: 'Failed to create todo' }) @@ -21,8 +20,8 @@ export const create = os.todo.create.use(db).handler(async ({ context, input }) return newTodo }) -export const update = os.todo.update.use(db).handler(async ({ context, input }) => { - const [updatedTodo] = await context.db.update(todoTable).set(input.data).where(eq(todoTable.id, input.id)).returning() +export const update = os.todo.update.handler(async ({ input }) => { + const [updatedTodo] = await db.update(todoTable).set(input.data).where(eq(todoTable.id, input.id)).returning() if (!updatedTodo) { throw new ORPCError('NOT_FOUND') @@ -31,8 +30,8 @@ export const update = os.todo.update.use(db).handler(async ({ context, input }) return updatedTodo }) -export const remove = os.todo.remove.use(db).handler(async ({ context, input }) => { - const [deleted] = await context.db.delete(todoTable).where(eq(todoTable.id, input.id)).returning({ id: todoTable.id }) +export const remove = os.todo.remove.handler(async ({ input }) => { + const [deleted] = await db.delete(todoTable).where(eq(todoTable.id, input.id)).returning({ id: todoTable.id }) if (!deleted) { throw new ORPCError('NOT_FOUND')