UNPKG

bc-opayo-sdk

Version:

BetterCommerce's Opayo NodeJS SDK enables BC client applications to integrate with Opayo merchant API system. It publishes an interface to interact with [Opayo API](https://www.elavon.co.uk/resource-center/help-with-your-solutions/opayo/integrations/types

38 lines (37 loc) 2.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Api = void 0; const OpayoEnvironment_1 = __importDefault(require("../base/config/OpayoEnvironment")); const enums_1 = require("../constants/enums"); const fetcher_1 = __importDefault(require("./util/fetcher")); /** * {Api} class provides a single interface to make REST calls to the Opayo API. * */ class Api { /** * Performs a REST call to the Opayo API. * @param {string} url - The relative url of the API endpoint. * @param {string} method - The HTTP request method. * @param {any} [params] - The request body or query string parameters. * @param {any} [cookies] - Cookies to be sent with the request. * @param {any} [headers] - Headers to be sent with the request. * @returns {Promise<any>} The response from the API. */ static async call(url, method, params, cookies, headers) { let options = { url, method, headers, cookies, baseUrl: OpayoEnvironment_1.default.baseUrl, }; if (params) { if ((method === null || method === void 0 ? void 0 : method.toUpperCase()) === enums_1.RequestMethod.GET) { options = Object.assign(Object.assign({}, options), { params: params }); } else if ((method === null || method === void 0 ? void 0 : method.toUpperCase()) === enums_1.RequestMethod.POST || (method === null || method === void 0 ? void 0 : method.toUpperCase()) === enums_1.RequestMethod.PUT || (method === null || method === void 0 ? void 0 : method.toUpperCase()) === enums_1.RequestMethod.PATCH || (method === null || method === void 0 ? void 0 : method.toUpperCase()) === enums_1.RequestMethod.DELETE) { options = Object.assign(Object.assign({}, options), { data: params }); } } return await (0, fetcher_1.default)(options); } } exports.Api = Api;