@trap_stevo/merchtide
Version:
Empowering the future of digital commerce, this API delivers the ultimate solution for building and managing online superstores. Seamlessly integrating product management, payment processing, and order tracking, it offers unmatched flexibility and scalabi
65 lines (64 loc) • 3.98 kB
JavaScript
;
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var stripe = require("stripe");
var paypal = require("paypal-rest-sdk");
var PayCoreManager = /*#__PURE__*/function () {
function PayCoreManager() {
_classCallCheck(this, PayCoreManager);
this.payCores = {};
}
return _createClass(PayCoreManager, [{
key: "initializePayCore",
value: function initializePayCore(name, config) {
if (!name || typeof name !== "string") {
console.log("Pay core name invalid.");
return false;
}
if (!config || _typeof(config) !== "object") {
console.log("Pay core configuration required.");
return false;
}
switch (name.toLowerCase()) {
case "stripe":
if (!config.apiKey) {
console.log("Stripe API key required.");
return false;
}
this.payCores.stripe = stripe(config.apiKey, config.stripeConfigurations || {});
return true;
case "paypal":
if (!config.client_id || !config.client_secret) {
console.log("PayPal client_id and client_secret required.");
return false;
}
paypal.configure(_objectSpread({
mode: config.mode || "sandbox",
client_id: config.client_id,
client_secret: config.client_secret
}, config.paypalConfigurations || {}));
this.payCores.paypal = paypal;
return true;
default:
console.log("Unsupported payment processor ~ ".concat(name));
return false;
}
}
}, {
key: "getPayCore",
value: function getPayCore(name) {
if (!this.payCores[name.toLowerCase()]) {
throw new Error("Pay core ~ \"".concat(name, "\" not initialized."));
}
return this.payCores[name.toLowerCase()];
}
}]);
}();
module.exports = new PayCoreManager();