UNPKG

resolve-runtime

Version:
58 lines (48 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extract_error_http_code = _interopRequireDefault(require("../utils/extract_error_http_code")); var _message = _interopRequireDefault(require("../message")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const viewModelHandler = async (req, res) => { try { const executeQuery = req.resolve.executeQuery; const modelName = req.params.modelName; const aggregateIds = req.params.modelOptions !== '*' ? req.params.modelOptions.split(/,/) : '*'; const aggregateArgs = req.arguments; const jwtToken = req.jwtToken; if (aggregateIds !== '*' && (!Array.isArray(aggregateIds) || aggregateIds.length === 0)) { resolveLog('warn', 'View model handler wrong aggregate ids parameter', req.path, aggregateIds); throw new Error(_message.default.viewModelOnlyOnDemand); } const serializedState = await executeQuery.readAndSerialize({ modelName, aggregateIds, aggregateArgs, jwtToken }); const lastError = await executeQuery.getLastError({ modelName, aggregateIds }); if (lastError != null) { resolveLog('warn', 'View model handler caused error', req.path, lastError); throw lastError; } await res.status(200); await res.setHeader('Content-Type', 'text/plain'); await res.end(serializedState); resolveLog('debug', 'View model handler successful', req.path); } catch (err) { const errorCode = (0, _extract_error_http_code.default)(err); await res.status(errorCode); await res.setHeader('Content-Type', 'text/plain'); await res.end(`${_message.default.viewModelFail}${err.message}`); resolveLog('error', 'View model handler failure', err); } }; var _default = viewModelHandler; exports.default = _default; //# sourceMappingURL=view_model_handler.js.map