bitpay-sdk
Version:
Complete version of the NodeJS library for the new cryptographically secure BitPay API
67 lines • 3.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BitPayResponseParser = void 0;
const BitPayExceptionProvider_1 = require("../Exceptions/BitPayExceptionProvider");
const BitPayApiException_1 = require("../Exceptions/BitPayApiException");
class BitPayResponseParser {
async getJsonDataFromJsonResponse(responseObj) {
if (responseObj === null) {
BitPayExceptionProvider_1.BitPayExceptionProvider.throwApiExceptionWithMessage('HTTP response is null', null);
}
try {
if (Object.prototype.hasOwnProperty.call(responseObj, 'status')) {
if (responseObj['status'] === 'error') {
BitPayExceptionProvider_1.BitPayExceptionProvider.throwApiExceptionWithMessage(responseObj['error'] ?? null, responseObj['code'] ?? null);
}
if (Object.prototype.hasOwnProperty.call(responseObj, 'data') &&
Object.keys(responseObj['data']).length === 0) {
return JSON.stringify(responseObj);
}
}
if (Object.prototype.hasOwnProperty.call(responseObj, 'error')) {
BitPayExceptionProvider_1.BitPayExceptionProvider.throwApiExceptionWithMessage(responseObj['error'] ?? null, responseObj['code'] ?? null);
}
if (Object.prototype.hasOwnProperty.call(responseObj, 'errors')) {
let result = '';
responseObj['errors'].forEach((error, index) => {
if (index !== 0) {
result += ' ';
}
const errorText = error['error'].endsWith('.') ? error['error'].slice(0, -1) : error['error'];
const param = Object.prototype.hasOwnProperty.call(error, 'param') ? error['param'] : '';
result += `${errorText} ${param}.`;
if (!result.endsWith('.')) {
result += '.';
}
});
BitPayExceptionProvider_1.BitPayExceptionProvider.throwApiExceptionWithMessage(result, responseObj['code'] ?? null);
}
if (Object.prototype.hasOwnProperty.call(responseObj, 'success')) {
return JSON.stringify(responseObj['success']);
}
if (Object.prototype.hasOwnProperty.call(responseObj, 'data')) {
return JSON.stringify(responseObj['data']);
}
return JSON.stringify(responseObj);
}
catch (e) {
if (e instanceof BitPayApiException_1.BitPayApiException) {
throw e;
}
BitPayExceptionProvider_1.BitPayExceptionProvider.throwApiExceptionWithMessage(e.message, null);
}
}
static jsonToBoolean(json) {
const result = JSON.parse(json);
let status;
if (typeof result === 'string') {
status = result;
}
else {
status = result.status;
}
return status === 'success' || status === 'Success';
}
}
exports.BitPayResponseParser = BitPayResponseParser;
//# sourceMappingURL=BitPayResponseParser.js.map