diff --git a/src/server/actions/addCountry.ts b/src/server/actions/addCountry.ts index 810e745..dbc6ee9 100644 --- a/src/server/actions/addCountry.ts +++ b/src/server/actions/addCountry.ts @@ -6,16 +6,19 @@ import { countries } from "../db/schema"; import { ZodError, z } from "zod"; import { eq } from "drizzle-orm"; -const schema = z.object({ - name: z.string().min(1, { message: "Name is required" }), -}); - export async function addCountry(prevstate: any, formData: FormData) { const name = formData.get("name") as string; const exists = await db .select({ name: countries.name }) .from(countries) .where(eq(countries.name, name)); + + const schema = z.object({ + name: z + .string() + .min(1, { message: "Name is required" }) + .refine(() => !exists[0], { message: "Country already exists" }), + }); try { schema.parse({ name,