resolve-runtime
Version:
This package create server with resolve.
58 lines (48 loc) • 1.96 kB
JavaScript
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
;