@bootpay/backend-js
Version:
Bootpay Server Side Package for Node.js
156 lines (155 loc) • 5.88 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BootpayCommerceResource = exports.BootpayCommerce = void 0;
const commerce_resource_1 = require("./lib/commerce-resource");
Object.defineProperty(exports, "BootpayCommerceResource", { enumerable: true, get: function () { return commerce_resource_1.BootpayCommerceResource; } });
const user_1 = require("./lib/commerce/modules/user");
const user_group_1 = require("./lib/commerce/modules/user-group");
const product_1 = require("./lib/commerce/modules/product");
const invoice_1 = require("./lib/commerce/modules/invoice");
const order_1 = require("./lib/commerce/modules/order");
const order_cancel_1 = require("./lib/commerce/modules/order-cancel");
const order_subscription_1 = require("./lib/commerce/modules/order-subscription");
const order_subscription_bill_1 = require("./lib/commerce/modules/order-subscription-bill");
const order_subscription_adjustment_1 = require("./lib/commerce/modules/order-subscription-adjustment");
class BootpayCommerce extends commerce_resource_1.BootpayCommerceResource {
constructor(configuration) {
super();
if (configuration) {
this.setConfiguration(configuration);
}
this.initModules();
}
initModules() {
this.user = new user_1.UserModule(this);
this.userGroup = new user_group_1.UserGroupModule(this);
this.product = new product_1.ProductModule(this);
this.invoice = new invoice_1.InvoiceModule(this);
this.order = new order_1.OrderModule(this);
this.orderCancel = new order_cancel_1.OrderCancelModule(this);
this.orderSubscription = new order_subscription_1.OrderSubscriptionModule(this);
this.orderSubscriptionBill = new order_subscription_bill_1.OrderSubscriptionBillModule(this);
this.orderSubscriptionAdjustment = new order_subscription_adjustment_1.OrderSubscriptionAdjustmentModule(this);
}
/**
* 액세스 토큰 발급
* client_key/secret_key로 인증
*/
getAccessToken() {
return __awaiter(this, void 0, void 0, function* () {
try {
const { client_key, secret_key } = this.commerceConfiguration;
const response = yield this.postWithBasicAuth('request/token', {
client_key,
secret_key
});
if (response === null || response === void 0 ? void 0 : response.access_token) {
this.setToken(response.access_token);
}
return response;
}
catch (e) {
return Promise.reject(e);
}
});
}
/**
* 토큰을 발급받아 설정합니다. (메서드 체이닝 지원)
*/
withToken() {
return __awaiter(this, void 0, void 0, function* () {
yield this.getAccessToken();
return this;
});
}
/**
* 현재 설정된 토큰을 반환합니다.
*/
getCurrentToken() {
return this.getToken();
}
/**
* 토큰이 설정되어 있는지 확인합니다.
*/
hasToken() {
const token = this.getToken();
return token !== undefined && token !== '';
}
/**
* 현재 role을 설정합니다. (메서드 체이닝 지원)
* @param role 설정할 role
*/
withRole(role) {
this.setRole(role);
return this;
}
/**
* 일반 사용자 role로 설정합니다.
*/
asUser() {
return this.withRole('user');
}
/**
* 매니저 role로 설정합니다.
*/
asManager() {
return this.withRole('manager');
}
/**
* 파트너 role로 설정합니다.
*/
asPartner() {
return this.withRole('partner');
}
/**
* 벤더 role로 설정합니다.
*/
asVendor() {
return this.withRole('vendor');
}
/**
* 슈퍼바이저 role로 설정합니다.
*/
asSupervisor() {
return this.withRole('supervisor');
}
/**
* 현재 role을 반환합니다.
*/
getCurrentRole() {
return this.getRole();
}
/**
* role을 기본값(user)으로 초기화합니다.
*/
clearRole() {
this.setRole('user');
return this;
}
}
exports.BootpayCommerce = BootpayCommerce;
__exportStar(require("./lib/commerce/types"), exports);
__exportStar(require("./lib/commerce/modules"), exports);