Compare commits
1 Commits
17-06-25-5
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3bac17fcb |
47
handler.js
47
handler.js
|
|
@ -1,27 +1,38 @@
|
|||
// Define the handler function
|
||||
// === Handler ===
|
||||
export const handler = async (req, res) => {
|
||||
try {
|
||||
console.log("Request strated")
|
||||
const { request } = req.body;
|
||||
const modified = preRequestHandlerWrapper(request);
|
||||
res.status(200).json(modified);
|
||||
const modified = processPreRequest(req.body?.request);
|
||||
return res.status(200).json(modified);
|
||||
} catch (err) {
|
||||
|
||||
if (err?.message.includes('Body content-type is not valid JSON')) {
|
||||
res.status(err.statusCode).json({
|
||||
error: err.name,
|
||||
message: err.message,
|
||||
...(err.details && { details: err.details })
|
||||
});
|
||||
} else {
|
||||
res.status(500).json({
|
||||
error: err.name || 'InternalServerError',
|
||||
message: err.message || 'Something went wrong',
|
||||
});
|
||||
}
|
||||
return handleError(err, res);
|
||||
}
|
||||
};
|
||||
|
||||
// === Core Processing ===
|
||||
function processPreRequest(request) {
|
||||
if (!request || typeof request !== 'object') {
|
||||
throw new InvalidJsonContentTypeError('Missing or invalid request body', 400);
|
||||
}
|
||||
|
||||
const modified = preRequestHandlerWrapper(request);
|
||||
return modified;
|
||||
}
|
||||
|
||||
// === Unified Error Handler ===
|
||||
function handleError(err, res) {
|
||||
const isJsonTypeError = err instanceof InvalidJsonContentTypeError ||
|
||||
err?.message?.includes('Body content-type is not valid JSON');
|
||||
|
||||
const status = isJsonTypeError ? err.statusCode || 415 : 500;
|
||||
|
||||
return res.status(status).json({
|
||||
error: err.name || 'InternalServerError',
|
||||
message: err.message || 'Unexpected error occurred',
|
||||
...(err.details && { details: err.details }),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
let currentContext = null;
|
||||
let currentRequest = null;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user