UNPKG

@zeushq/nextjs-zapi

Version:

Next.js SDK for creating a Zeus API

36 lines (26 loc) 865 B
import { NextApiRequest, NextApiResponse } from 'next'; import { ZApiResource } from '../../handlers/resource'; import createDebug from '../utils/debug'; const debug = createDebug('handlers:update'); export type HandleUpdate = (req: NextApiRequest, res: NextApiResponse) => Promise<void>; export default function updateHandlerFactory(): HandleUpdate { return async (_req, res) => { const zapi = (res as any).zapi as ZApiResource; debug('update', zapi); const { error, value } = zapi.schema.update.validate(zapi.body); if (error) { res.json({ error }); res.end(); return; } let where = {} as any; where[zapi.primaryKey] = zapi.routeParams.id; const object = await zapi.model.update({ where, data: value }); const output = { object } as any; res.json(output); res.end(); }; }