@upv/ushi-shared
Version:
Shared DTOs, types, and utilities for the USHI platform (LMS, Trials, Social, Wallet).
23 lines (22 loc) • 809 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateBody = void 0;
const errors_1 = require("../../api/errors");
const console_1 = require("console");
const zod_1 = require("zod");
// import { ApiErrorCode } from '../../api';
const validateBody = (event, schema) => {
try {
const parsed = JSON.parse(event.body || '{}');
return schema.parse(parsed);
}
catch (err) {
if (err instanceof zod_1.ZodError) {
return (0, console_1.error)(errors_1.ApiErrorCode.VALIDATION_FAILED, 'Invalid request body', 400, {
issues: err.flatten().fieldErrors,
});
}
return (0, console_1.error)(errors_1.ApiErrorCode.UNKNOWN, 'Malformed request', 400);
}
};
exports.validateBody = validateBody;