从信任边界、返回结果和资源使用角度审查这段生成的 router。
允许管理员更新一个用户资料,并获取有界的审计记录页。
TypeScript
import { z } from "zod";
import { router, publicProcedure } from "../trpc";
export const userRouter = router({
update: publicProcedure
.input(z.object({
userId: z.string(),
name: z.string(),
role: z.string(),
}))
.mutation(async ({ ctx, input }) => {
const user = await ctx.db.user.findUnique({ where: { id: input.userId } });
if (!user) throw new Error("missing user");
await ctx.db.user.update({
where: { id: user.id },
data: { name: input.name, role: input.role },
});
return ctx.db.user.findMany();
}),
audit: publicProcedure
.input(z.object({ limit: z.number().optional() }))
.query(async ({ ctx, input }) => {
const rows = await ctx.db.audit.findMany();
return rows.slice(0, input.limit ?? rows.length);
}),
});
生成代码仅作示例,不代表任何特定模型