Files
vesta/app/api/admin/units/route.ts
T
2026-07-30 12:15:17 +03:00

32 lines
1.0 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { prisma } from '@/lib/db'
import { requireAdmin } from '@/lib/auth-helpers'
import { MOCK_UNITS } from '@/lib/mock'
import { UnitSchema } from '@/lib/validations'
const USE_MOCK = process.env.USE_MOCK === 'true'
export async function GET() {
try {
const data = USE_MOCK
? MOCK_UNITS
: await prisma.unit.findMany({ where: { deletedAt: null }, orderBy: { order: 'asc' } })
return NextResponse.json({ data })
} catch {
return NextResponse.json({ error: 'Server error' }, { status: 500 })
}
}
export async function POST(req: NextRequest) {
try {
await requireAdmin()
const body = await req.json()
const parsed = UnitSchema.safeParse(body)
if (!parsed.success) return NextResponse.json({ error: parsed.error.flatten() }, { status: 400 })
const record = await prisma.unit.create({ data: parsed.data })
return NextResponse.json({ data: record }, { status: 201 })
} catch {
return NextResponse.json({ error: 'Server error' }, { status: 500 })
}
}