in core/nodejsActionBase/platform/platform.js [122:143]
wrapEndpoint(ep) {
return function (req, res) {
try {
ep(req).then(function (result) {
res.status(result.code).json(result.response);
}).catch(function (error) {
if (typeof error.code === "number" && typeof error.response !== "undefined") {
res.status(error.code).json(error.response);
} else {
console.error("[wrapEndpoint]", "invalid errored promise", JSON.stringify(error));
res.status(500).json({ error: "Internal error." });
}
});
} catch (e) {
// This should not happen, as the contract for the endpoints is to
// never (externally) throw, and wrap failures in the promise instead,
// but, as they say, better safe than sorry.
console.error("[wrapEndpoint]", "exception caught", e.message);
res.status(500).json({ error: "Internal error (exception)." });
}
}
}