diff --git a/src/app/api/mii/[id]/delete/route.ts b/src/app/api/mii/[id]/delete/route.ts index a9cdd98..d9233f2 100644 --- a/src/app/api/mii/[id]/delete/route.ts +++ b/src/app/api/mii/[id]/delete/route.ts @@ -6,20 +6,16 @@ import path from "path"; import { auth } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; +import { idSchema } from "@/lib/schemas"; const uploadsDirectory = path.join(process.cwd(), "public", "mii"); -const slugSchema = z.coerce - .number({ message: "Mii ID must be a number" }) - .int({ message: "Mii ID must be an integer" }) - .positive({ message: "Mii ID must be valid" }); - export async function DELETE(request: NextRequest, { params }: { params: Promise<{ id: string }> }) { const session = await auth(); if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); const { id: slugId } = await params; - const parsed = slugSchema.safeParse(slugId); + const parsed = idSchema.safeParse(slugId); if (!parsed.success) return NextResponse.json({ error: parsed.error.errors[0].message }, { status: 400 }); const miiId = parsed.data; diff --git a/src/app/api/mii/[id]/like/route.ts b/src/app/api/mii/[id]/like/route.ts index bc9f38e..d13acf9 100644 --- a/src/app/api/mii/[id]/like/route.ts +++ b/src/app/api/mii/[id]/like/route.ts @@ -3,18 +3,14 @@ import { z } from "zod"; import { auth } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; - -const slugSchema = z.coerce - .number({ message: "Mii ID must be a number" }) - .int({ message: "Mii ID must be an integer" }) - .positive({ message: "Mii ID must be valid" }); +import { idSchema } from "@/lib/schemas"; export async function PATCH(request: NextRequest, { params }: { params: Promise<{ id: string }> }) { const session = await auth(); if (!session) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); const { id: slugId } = await params; - const parsed = slugSchema.safeParse(slugId); + const parsed = idSchema.safeParse(slugId); if (!parsed.success) return NextResponse.json({ error: parsed.error.errors[0].message }, { status: 400 }); const miiId = parsed.data; diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts index 2c0bda8..710843c 100644 --- a/src/lib/schemas.ts +++ b/src/lib/schemas.ts @@ -32,6 +32,11 @@ export const tagsSchema = z .min(1, { message: "There must be at least 1 tag" }) .max(8, { message: "There cannot be more than 8 tags" }); +export const idSchema = z.coerce + .number({ message: "Mii ID must be a number" }) + .int({ message: "Mii ID must be an integer" }) + .positive({ message: "Mii ID must be valid" }); + // Account Info export const usernameSchema = z .string()