payu-latam-node
Version:
PayU Latam library in Node Js
88 lines (71 loc) • 3.23 kB
JavaScript
;
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;
}();