UNPKG

pcp-server-nodejs-sdk

Version:

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=PAYONE-GmbH_PCP-server-nodeJS-SDK&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=PAYONE-GmbH_PCP-server-nodeJS-SDK) [![Coverage](https://sonarcloud.io/api/pr

74 lines 3.27 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import fetch, {} from 'node-fetch'; import { CommunicatorConfiguration } from '../CommunicatorConfiguration.js'; import { RequestHeaderGenerator } from '../RequestHeaderGenerator.js'; import { ApiErrorResponseException, ApiResponseRetrievalException } from '../errors/index.js'; function isErrorResponse(parsed) { if (typeof parsed !== 'object' || parsed === null) { return false; } const record = parsed; if (Object.prototype.hasOwnProperty.call(record, 'errorId') && typeof record['errorId'] !== 'string') { return false; } if (Object.prototype.hasOwnProperty.call(record, 'errorId') && !Array.isArray(record['errors'])) { return false; } return true; } export const MERCHANT_ID_REQUIRED_ERROR = 'Merchant ID is required'; export const COMMERCE_CASE_ID_REQUIRED_ERROR = 'Commerce Case ID is required'; export const CHECKOUT_ID_REQUIRED_ERROR = 'Checkout ID is required'; export class BaseApiClient { static parseVoid() { return; } static parseJson(body) { const parsed = JSON.parse(body); if (typeof parsed !== 'object' || parsed === null) { throw new TypeError('Parsed JSON is not an object'); } return parsed; } constructor(config) { this.config = config; this.requestHeaderGenerator = new RequestHeaderGenerator(config); } getRequestHeaderGenerator() { return this.requestHeaderGenerator; } getConfig() { return this.config; } makeApiCall(url_1, requestInit_1) { return __awaiter(this, arguments, void 0, function* (url, requestInit, parseBody = BaseApiClient.parseJson) { var _a; requestInit = this.requestHeaderGenerator.generateAdditionalRequestHeaders(url, requestInit); const response = yield fetch(url, requestInit); const body = yield response.text(); let parsed; try { parsed = parseBody(body); } catch (error) { throw new ApiResponseRetrievalException(response.status, body, error instanceof Error ? error : undefined); } if (!response.ok) { if (isErrorResponse(parsed)) { throw new ApiErrorResponseException(response.status, body, (_a = parsed.errors) !== null && _a !== void 0 ? _a : []); } throw new ApiResponseRetrievalException(response.status, body); } return parsed; }); } } //# sourceMappingURL=BaseApiClient.js.map