templates2.Admin.Nuxt/server/api/admin/customers/[id].patch.ts
w4c-templates 914988e187
Some checks failed
CI / quality (push) Has been cancelled
chore(template): publish Admin.Nuxt
2026-10-11 23:25:56 +03:00

19 lines
809 B
TypeScript

import { customerSchema, updateCustomer } from '../../../utils/crm';
import { requireWrite } from '../../../utils/guard';
export default defineEventHandler(async (event) => {
const user = await requireWrite(event);
const id = getRouterParam(event, 'id')!;
const parsed = customerSchema.safeParse(await readBody(event).catch(() => ({})));
if (!parsed.success) throw createError({ statusCode: 400, statusMessage: 'Invalid customer' });
try {
const result = await updateCustomer(id, parsed.data, user);
if (!result.ok) throw createError({ statusCode: 409, statusMessage: result.error });
return { customer: result.customer };
} catch (e) {
if (e && typeof e === 'object' && 'statusCode' in e) throw e;
throw createError({ statusCode: 404, statusMessage: 'Not found' });
}
});