UNPKG

@bootpay/backend-js

Version:

Bootpay Server Side Package for Node.js

156 lines (155 loc) 5.88 kB
"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);