14 lines
623 B
TypeScript
14 lines
623 B
TypeScript
import { createCustomer, customerSchema } from '../../../utils/crm';
|
|
import { requireWrite } from '../../../utils/guard';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireWrite(event);
|
|
const parsed = customerSchema.safeParse(await readBody(event).catch(() => ({})));
|
|
if (!parsed.success) throw createError({ statusCode: 400, statusMessage: 'Invalid customer' });
|
|
|
|
const result = await createCustomer(parsed.data, user);
|
|
if (!result.ok) throw createError({ statusCode: 409, statusMessage: result.error });
|
|
setResponseStatus(event, 201);
|
|
return { customer: result.customer };
|
|
});
|