diff --git a/handler.js b/handler.js index 706a7e6..7aaec13 100644 --- a/handler.js +++ b/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;