@bitmovin/api-sdk
Version:
Bitmovin JS/TS API SDK
99 lines (98 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildBitmovinError = buildBitmovinError;
exports.buildBitmovinErrorFromError = buildBitmovinErrorFromError;
var BitmovinError_1 = require("./BitmovinError");
function appendLine(message, messageToAppend) {
return "".concat(message).concat(messageToAppend, "\n");
}
function getShortMessage(additionalInfo, errorResponse) {
var shortMessage = "Request failed: ".concat(additionalInfo);
if (errorResponse !== undefined && errorResponse.data !== undefined && errorResponse.data.message !== undefined) {
shortMessage = errorResponse.data.message;
}
return shortMessage;
}
function buildBitmovinDetailMessage(details) {
var message = appendLine('', " - id: ".concat(details.id));
message = appendLine(message, " date: ".concat(details.date));
message = appendLine(message, " type: ".concat(details.type));
message = appendLine(message, " text: ".concat(details.text));
return details.field == undefined ? message : appendLine(message, " field: ".concat(details.field));
}
function appendRequestMessage(request) {
var message = appendLine('', "request:");
message = appendLine(message, " method: ".concat(request.method));
message = appendLine(message, " url: ".concat(request.url));
return request.body == undefined ? message : appendLine(message, " body: ".concat(request.body));
}
function appendResponseMessage(response, errorResponse) {
var message = appendLine('', "response:");
message = appendLine(message, " httpStatusCode: ".concat(response.status));
if (errorResponse) {
var body = errorResponse;
if (!(typeof body === 'string' || body instanceof String)) {
body = JSON.stringify(body);
message = appendLine(message, " body: ".concat(body));
}
}
return message;
}
function buildDetails(details) {
var message = appendLine('', 'details:');
for (var _i = 0, _a = Object.keys(details); _i < _a.length; _i++) {
var detail = _a[_i];
message += buildBitmovinDetailMessage(details[detail]);
}
return message;
}
function buildLinks(links) {
var message = appendLine('', 'links:');
for (var _i = 0, _a = Object.keys(links); _i < _a.length; _i++) {
var link = _a[_i];
message = appendLine(message, " ".concat(links[link].title, " ").concat(links[link].href));
}
return message;
}
function buildBitmovinError(additionalInfo, request, response, errorResponse, error) {
var code;
var details;
var developerMessage;
var links;
var requestId;
var shortMessage = getShortMessage(additionalInfo, errorResponse);
var message = appendLine('', shortMessage);
if (errorResponse !== undefined && errorResponse.data !== undefined) {
var data = errorResponse.data;
developerMessage = data.developerMessage;
code = data.code;
requestId = errorResponse.requestId;
message = appendLine(message, "developerMessage: ".concat(data.developerMessage));
message = appendLine(message, "errorCode: ".concat(data.code));
if (Array.isArray(data.details)) {
details = data.details;
message += buildDetails(details);
}
if (Array.isArray(data.links)) {
links = data.links;
message += buildLinks(links);
}
}
message += appendRequestMessage(request);
message += appendResponseMessage(response, errorResponse);
var bitmovinError = new BitmovinError_1.default(message, response.status, shortMessage, developerMessage, requestId, code, details, links);
if (error && error.stack) {
bitmovinError.stack = error.stack;
}
return bitmovinError;
}
function buildBitmovinErrorFromError(request, error) {
var shortMessage = "Request failed: ".concat(error.message);
var message = appendLine('', shortMessage);
message += appendRequestMessage(request);
var bitmovinError = new BitmovinError_1.default(message, 0, shortMessage, shortMessage);
if (error.stack) {
bitmovinError.stack = error.stack;
}
return bitmovinError;
}