@builton/core-sdk
Version:
Builton JavaScript SDK.
76 lines (64 loc) • 2.27 kB
JavaScript
const Request = require('./utils/request');
const Error = require('./utils/error');
const AIModels = require('./collection/resources/aiModels');
const Company = require('./collection/resources/company');
const Orders = require('./collection/resources/orders');
const Payments = require('./collection/resources/payments');
const PaymentMethods = require('./collection/resources/paymentMethods');
const Plans = require('./collection/resources/plans');
const Products = require('./collection/resources/products');
const Resources = require('./collection/resources/resources');
const Subscriptions = require('./collection/resources/subscriptions');
const Users = require('./collection/resources/users');
const Images = require('./collection/resources/images');
const Cart = require('./functionality/cart');
let instance;
class Builton {
constructor({
apiKey,
bearerToken,
endpoint = 'https://api.builton.dev',
singleton = false,
refreshTokenFn = null,
} = {}) {
if (singleton && instance) {
return instance;
}
if (!apiKey) {
throw new Error.MethodNeedsArg('apiKey');
}
this.endpoint = endpoint;
this.request = new Request(this.endpoint, {
apiKey,
bearerToken,
}, refreshTokenFn);
this.aiModels = new AIModels(this.request);
this.company = new Company(this.request);
this.orders = new Orders(this.request);
this.payments = new Payments(this.request);
this.paymentMethods = new PaymentMethods(this.request);
this.plans = new Plans(this.request);
this.products = new Products(this.request);
this.resources = new Resources(this.request);
this.subscriptions = new Subscriptions(this.request);
this.users = new Users(this.request);
this.images = new Images(this.request);
this.cart = new Cart(this.request);
if (singleton) {
instance = this;
}
}
refreshBearerToken(newBearerToken) {
this.request.bearerToken = newBearerToken;
}
authenticate({ bearerToken, refreshTokenFn, body }) {
if (bearerToken) {
this.request.bearerToken = bearerToken;
}
if (refreshTokenFn) {
this.request.refreshBearerFn = refreshTokenFn;
}
return this.users.authenticate(body || {});
}
}
module.exports = Builton;