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); } }