UNPKG

@spare-technologies/spare-typescript-sdk

Version:
177 lines 6.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SpPaymentClient = void 0; const tslib_1 = require("tslib"); const SpEndpoints_1 = require("./SpEndpoints"); const SpareSdkResponse_1 = require("../Models/Response/SpareSdkResponse"); require("../../Helpers/Extensions/SerilizableExtension"); const SpCreateDomesticPaymentResponse_1 = require("../Models/Payment/Domestic/SpCreateDomesticPaymentResponse"); const typescript_json_serializer_1 = require("typescript-json-serializer"); const SpClientSdkError_1 = require("../Errors/SpClientSdkError"); const axios = require('axios').default; class SpPaymentClient { constructor(_clientOptions) { this._clientOptions = _clientOptions; this.serializer = new typescript_json_serializer_1.JsonSerializer({ errorCallback: typescript_json_serializer_1.logError, nullishPolicy: { undefined: 'remove', null: 'remove' } }); if (_clientOptions == null) { throw new SpClientSdkError_1.SpClientSdkError("Client configuration is required"); } if (_clientOptions.baseUrl == 'undefined' || _clientOptions.baseUrl == null) { throw new SpClientSdkError_1.SpClientSdkError("Base URL is required"); } if (_clientOptions.apiKey == 'undefined' || _clientOptions.apiKey == null) { throw new SpClientSdkError_1.SpClientSdkError("App key is required"); } if (_clientOptions.appId == 'undefined' || _clientOptions.appId == null) { throw new SpClientSdkError_1.SpClientSdkError("App key is required"); } this.headers = { 'app-id': `${this._clientOptions.appId}`, 'x-api-key': `${this._clientOptions.apiKey}`, 'Content-Type': 'application/json', }; } GetUrl(endpoint) { return `${this._clientOptions.baseUrl}${endpoint.Value}`; } static GetBody(o) { return o.toJson(); } /*** * Create domestic payment * @param payment * @param signature * @constructor */ CreateDomesticPayment(payment, signature) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const Headers = { 'app-id': `${this._clientOptions.appId}`, 'x-api-key': `${this._clientOptions.apiKey}`, 'Content-Type': 'application/json', 'x-signature': signature }; try { const response = yield axios({ method: 'post', url: this.GetUrl(SpEndpoints_1.SpEndpoints.CreateDomesticPayment), headers: Headers, data: SpPaymentClient.GetBody(payment), proxy: this.buildProxy() }); const responseModel = (this.serializer .deserialize(response.data, SpareSdkResponse_1.SpareSdkResponse)); return new SpCreateDomesticPaymentResponse_1.SpCreateDomesticPaymentResponse(responseModel.data, response.headers['x-signature']); } catch (e) { // @ts-ignore if (e.response) { // @ts-ignore return Promise.reject(JSON.stringify(e.response.data)); } // @ts-ignore return Promise.reject(e.toString()); } }); } /*** * Get domestic payment * @param id * @constructor */ GetDomesticPayment(id) { return tslib_1.__awaiter(this, void 0, void 0, function* () { try { const response = yield axios({ method: 'get', url: this.GetUrl(SpEndpoints_1.SpEndpoints.GetDomesticPayment), params: { id: id }, proxy: this.buildProxy(), headers: this.headers }); if (response.status != 200) { return Promise.reject(new SpClientSdkError_1.SpClientSdkError(JSON.stringify(response.data.toString()))); } return (this.serializer .deserialize(response.data, SpareSdkResponse_1.SpareSdkResponse)); } catch (e) { // @ts-ignore if (e.response) { // @ts-ignore return Promise.reject(JSON.stringify(e.response.data)); } // @ts-ignore return Promise.reject(e.toString()); } }); } /*** * List domestic payment * @param start * @param perPage * @constructor */ ListDomesticPayments(start = 0, perPage = 100) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (perPage <= 0) { perPage = 100; } try { const response = yield axios({ method: 'get', url: this.GetUrl(SpEndpoints_1.SpEndpoints.ListDomesticPayments), params: { start: start, perPage: perPage }, proxy: this.buildProxy(), headers: this.headers }); if (response.status != 200) { return Promise.reject(new SpClientSdkError_1.SpClientSdkError(JSON.stringify(response.data.toString()))); } return (this.serializer .deserialize(response.data, SpareSdkResponse_1.SpareSdkResponse)); } catch (e) { // @ts-ignore if (e.response) { // @ts-ignore return Promise.reject(JSON.stringify(e.response.data)); } // @ts-ignore return Promise.reject(e.toString()); } }); } /** * Build proxy object * @private */ buildProxy() { var _a; if (((_a = this._clientOptions.proxy) === null || _a === void 0 ? void 0 : _a.host) != null) { let credentials = (this._clientOptions.proxy.username != null && this._clientOptions.proxy.password != null) ? { username: this._clientOptions.proxy.username, password: this._clientOptions.proxy.password } : null; return { host: this._clientOptions.proxy.host, port: this._clientOptions.proxy.port, auth: credentials }; } return null; } } exports.SpPaymentClient = SpPaymentClient; //# sourceMappingURL=SpPaymentClient.js.map