UNPKG

xapi-activities

Version:
85 lines 4.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var handleError_1 = require("jscommons/dist/expressPresenter/utils/handleError"); var sendMessage_1 = require("jscommons/dist/expressPresenter/utils/sendMessage"); var sendObject_1 = require("jscommons/dist/expressPresenter/utils/sendObject"); var rulr_1 = require("rulr"); var Conflict_1 = require("../../errors/Conflict"); var IfMatch_1 = require("../../errors/IfMatch"); var IfNoneMatch_1 = require("../../errors/IfNoneMatch"); var InvalidMethod_1 = require("../../errors/InvalidMethod"); var JsonSyntaxError_1 = require("../../errors/JsonSyntaxError"); var MaxEtags_1 = require("../../errors/MaxEtags"); var MissingEtags_1 = require("../../errors/MissingEtags"); var NonJsonObject_1 = require("../../errors/NonJsonObject"); var constants_1 = require("../../utils/constants"); var httpCodes_1 = require("./httpCodes"); var translateWarning_1 = require("./translateWarning"); exports.default = function (_a) { var config = _a.config, errorId = _a.errorId, res = _a.res, err = _a.err; var logger = config.logger, translator = config.translator; var logError = function (msg, meta) { logger.error(errorId + ": xapi-activities handled - " + msg, meta); }; res.setHeader('X-Experience-API-Version', constants_1.xapiHeaderVersion); if (err instanceof JsonSyntaxError_1.default) { var code = httpCodes_1.CLIENT_ERROR_400_HTTP_CODE; var message = translator.jsonSyntaxError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof MissingEtags_1.default) { var code = httpCodes_1.CLIENT_ERROR_400_HTTP_CODE; var message = translator.missingEtagsError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof MaxEtags_1.default) { var code = httpCodes_1.CLIENT_ERROR_400_HTTP_CODE; var message = translator.maxEtagsError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof Conflict_1.default) { var code = httpCodes_1.CONFLICT_409_HTTP_CODE; var message = translator.conflictError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof IfMatch_1.default) { var code = httpCodes_1.PRECONDITION_FAILED_412_HTTP_CODE; var message = translator.ifMatchError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof IfNoneMatch_1.default) { var code = httpCodes_1.PRECONDITION_FAILED_412_HTTP_CODE; var message = translator.ifNoneMatchError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof NonJsonObject_1.default) { var code = httpCodes_1.CLIENT_ERROR_400_HTTP_CODE; var message = translator.nonJsonObjectError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } if (err instanceof rulr_1.Warnings) { var code = 400; var warnings = err.warnings; var strWarnings = warnings.map(function (warning) { return translateWarning_1.default(translator, warning); }); var obj = { warnings: strWarnings }; logError('Validation warnings', strWarnings); return sendObject_1.default({ res: res, code: code, errorId: errorId, obj: obj }); } if (err instanceof InvalidMethod_1.default) { var code = httpCodes_1.CLIENT_ERROR_400_HTTP_CODE; var message = translator.invalidMethodError(err); logError(message); return sendMessage_1.default({ res: res, code: code, errorId: errorId, message: message }); } return handleError_1.default({ config: config, errorId: errorId, res: res, err: err }); }; //# sourceMappingURL=handleError.js.map