kodex-music-catalog/api/v1/response-wrapper.js
2023-09-30 16:52:13 +03:00

39 lines
735 B
JavaScript

const unknownError = (err) => {
return {
error : 'UNKNOWN_ERROR',
details : {}
};
}
const unknownResponseFormat = 'UNKNOWN_RESPONSE_FORMAT';
function handlingError (funct, success, error) {
try {
success(funct());
}
catch (e) {
// console.log('error', e);
error(e.name === 'ApiError' ? {
error : e.message,
details : e.details
} : unknownError(e));
}
}
module.exports = (method, req, res) => {
if (req.query.response_format === 'json') {
handlingError(
() => ({ response : method(req, res) }),
(data) => {
res.sendModed(data);
},
(errBody) => {
res.errorModeOn();
res.status(400).sendModed(errBody);
}
);
}
else {
res.status(400).sendModed(unknownResponseFormat);
}
}