v0.2.3 — Fix new plant categories rejected by API validation
This commit is contained in:
@@ -2,13 +2,11 @@ import { NextResponse } from "next/server";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { db } from "@/lib/db";
|
import { db } from "@/lib/db";
|
||||||
import { requireAuth, isAdmin } from "@/lib/auth";
|
import { requireAuth, isAdmin } from "@/lib/auth";
|
||||||
import { PlantCategory } from "@prisma/client";
|
|
||||||
|
|
||||||
const updateSchema = z.object({
|
const updateSchema = z.object({
|
||||||
commonName: z.string().min(1),
|
commonName: z.string().min(1),
|
||||||
species: z.string().optional(),
|
species: z.string().optional(),
|
||||||
variety: z.string().optional(),
|
variety: z.string().optional(),
|
||||||
category: z.nativeEnum(PlantCategory),
|
category: z.string().min(1),
|
||||||
zone: z.string().optional(),
|
zone: z.string().optional(),
|
||||||
plantedAt: z.string().optional(),
|
plantedAt: z.string().optional(),
|
||||||
source: z.string().optional(),
|
source: z.string().optional(),
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ import { NextResponse } from "next/server";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { db } from "@/lib/db";
|
import { db } from "@/lib/db";
|
||||||
import { requireAuth } from "@/lib/auth";
|
import { requireAuth } from "@/lib/auth";
|
||||||
import { PlantCategory } from "@prisma/client";
|
|
||||||
|
|
||||||
const createSchema = z.object({
|
const createSchema = z.object({
|
||||||
commonName: z.string().min(1),
|
commonName: z.string().min(1),
|
||||||
species: z.string().optional(),
|
species: z.string().optional(),
|
||||||
variety: z.string().optional(),
|
variety: z.string().optional(),
|
||||||
category: z.nativeEnum(PlantCategory),
|
category: z.string().min(1),
|
||||||
zone: z.string().optional(),
|
zone: z.string().optional(),
|
||||||
plantedAt: z.string().optional(), // ISO date string
|
plantedAt: z.string().optional(), // ISO date string
|
||||||
source: z.string().optional(),
|
source: z.string().optional(),
|
||||||
@@ -46,7 +44,7 @@ export async function POST(req: Request) {
|
|||||||
return NextResponse.json(plant, { status: 201 });
|
return NextResponse.json(plant, { status: 201 });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err instanceof z.ZodError) {
|
if (err instanceof z.ZodError) {
|
||||||
return NextResponse.json({ error: err.issues }, { status: 400 });
|
return NextResponse.json({ error: err.issues[0]?.message ?? "Invalid data" }, { status: 400 });
|
||||||
}
|
}
|
||||||
if (err instanceof Error && err.message === "Unauthorized") {
|
if (err instanceof Error && err.message === "Unauthorized") {
|
||||||
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
||||||
|
|||||||
Reference in New Issue
Block a user