UNPKG

bitpay-sdk

Version:

Complete version of the NodeJS library for the new cryptographically secure BitPay API

67 lines 3.2 kB
"use strict"; 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