UNPKG

payu-latam-node

Version:
88 lines (71 loc) 3.23 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.utils = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _requestPromise = require('request-promise'); var _requestPromise2 = _interopRequireDefault(_requestPromise); var _constants = require('./constants'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var utils = exports.utils = function () { function utils() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, utils); this.config = config; } _createClass(utils, [{ key: 'getMerchant', value: function getMerchant() { return { 'apiLogin': this.config.apiLogin, 'apiKey': this.config.apiKey }; } }, { key: 'getPayload', value: function getPayload() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; data.language = _constants.payConf.lang; data.test = this.config.test; data.merchant = this.getMerchant(); return JSON.stringify(data); } }, { key: 'getUrl', value: function getUrl() { if (_constants.payConf[this.config.api] != undefined) { var prefix = this.config.test ? 'test' : 'live'; return _constants.payConf[this.config.api][prefix]; } else { throw new Exception('API URL was not found.'); } } }, { key: '_post', value: function _post() { var req = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var url = this.getUrl(); var payload = this.getPayload(req); var options = { url: url, body: payload, method: 'POST', headers: _constants.payConf.headers }; return this._request(options); } }, { key: '_request', value: function _request() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return (0, _requestPromise2.default)(options).then(function (result) { return Promise.resolve(JSON.parse(result)); }).catch(function (e) { return Promise.reject(e); }); } }]); return utils; }();