thawani-node
Version:
Thawani API http client
82 lines (61 loc) • 2.93 kB
JavaScript
"use strict"; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _customer = require('./endpoints/customer'); var _customer2 = _interopRequireDefault(_customer);
var _payment = require('./endpoints/payment'); var _payment2 = _interopRequireDefault(_payment);
var _axios4 = require('./helpers/axios'); var _axios5 = _interopRequireDefault(_axios4);
var _session = require('./endpoints/session'); var _session2 = _interopRequireDefault(_session);
var _PaymentTransactions = require('./endpoints/PaymentTransactions'); var _PaymentTransactions2 = _interopRequireDefault(_PaymentTransactions);
var _refund = require('./endpoints/refund'); var _refund2 = _interopRequireDefault(_refund);
var _PaymentIntent = require('./endpoints/PaymentIntent'); var _PaymentIntent2 = _interopRequireDefault(_PaymentIntent);
var _plans = require('./endpoints/plans'); var _plans2 = _interopRequireDefault(_plans);
var _subscription = require('./endpoints/subscription'); var _subscription2 = _interopRequireDefault(_subscription);
/**
* Thawani client class
* @author Muhannad Al-Risi
* @since 1.0.0
*/
class ThawaniClient {
/**
* @param {SettingConfig} config
*/
constructor(config) {
this.secret_key = config.secretKey;
this.publishable_key = config.publishableKey;
this.isProduction = !config.dev; // if dev set to true then the production is false
this.api = new (0, _axios5.default)(this.isProduction, this.secret_key);
this._axios = this.api.getInstance();
if(!config.filter)
{
config.filter = {
limit: 10,
skip:1
}
}
this.customer = new (0, _customer2.default)(this._axios ,config.filter);
this.payment = new (0, _payment2.default)(this._axios);
this.session = new (0, _session2.default)(this._axios, config.filter);
this.paymentTransaction = new (0, _PaymentTransactions2.default)(this._axios , config.filter);
this.refund = new (0, _refund2.default)(this._axios , config.filter);
this.paymentIntent = new (0, _PaymentIntent2.default)(this._axios , config.filter);
this.plans = new (0, _plans2.default)(this._axios ,config.filter);
this.subscription = new (0, _subscription2.default)(this._axios , config.filter);
}
getInstance() {
return this._axios;
}
/**
* Get the full redirect link to Thawani checkout page
* @param {String} session_id
* @return {String} full uri
*/
redirect(session_id) {
return this.session.redirect(session_id, this.publishable_key);
}
/**
* Get the endpoint base url
* @return {String} base url
*/
endpoint() {
return this.api.get_base_url();
}
}
module.exports = ThawaniClient