@zeushq/nextjs-zapi
Version:
Next.js SDK for creating a Zeus API
36 lines (26 loc) • 865 B
text/typescript
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();
};
}