init-source
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import type { NextApiRequest, NextApiResponse } from 'next'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { requireAuth, logAction } from '@/lib/auth'
|
||||
|
||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
const user = await requireAuth(req, res)
|
||||
if (!user) return
|
||||
|
||||
if (req.method === 'GET') {
|
||||
const items = await prisma.shippingStandardItem.findMany({ orderBy: { order: 'asc' } })
|
||||
return res.json({ data: items })
|
||||
}
|
||||
|
||||
if (req.method === 'POST') {
|
||||
if (user.role !== 'ADMIN' && user.role !== 'QC') return res.status(403).json({ error: 'Admin/QC only' })
|
||||
const { text, source } = req.body
|
||||
if (!text) return res.status(400).json({ error: 'text required' })
|
||||
|
||||
const maxOrder = await prisma.shippingStandardItem.count()
|
||||
const item = await prisma.shippingStandardItem.create({
|
||||
data: { text, source: source || 'Baseline', order: maxOrder },
|
||||
})
|
||||
|
||||
await logAction(user.id, 'CREATE', 'ShippingStandardItem', item.id, null, { text })
|
||||
return res.status(201).json({ data: item })
|
||||
}
|
||||
|
||||
res.status(405).end()
|
||||
}
|
||||
Reference in New Issue
Block a user