refactor(auth): add validation to prevent create another admin when a admin is present

This commit is contained in:
Mauricio Siu 2024-08-26 15:19:30 -06:00
parent 1df9f1f4df
commit 74ea9debd5

View File

@ -27,12 +27,21 @@ import {
protectedProcedure, protectedProcedure,
publicProcedure, publicProcedure,
} from "../trpc"; } from "../trpc";
import { db } from "../../db";
export const authRouter = createTRPCRouter({ export const authRouter = createTRPCRouter({
createAdmin: publicProcedure createAdmin: publicProcedure
.input(apiCreateAdmin) .input(apiCreateAdmin)
.mutation(async ({ ctx, input }) => { .mutation(async ({ ctx, input }) => {
try { try {
const admin = await db.query.admins.findFirst({});
if (admin) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Admin already exists",
});
}
const newAdmin = await createAdmin(input); const newAdmin = await createAdmin(input);
const session = await lucia.createSession(newAdmin.id || "", {}); const session = await lucia.createSession(newAdmin.id || "", {});
ctx.res.appendHeader( ctx.res.appendHeader(