UNPKG

@bootpay/backend-js

Version:

Bootpay Server Side Package for Node.js

135 lines (134 loc) 5.43 kB
"use strict"; 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.OrderSubscriptionModule = exports.OrderSubscriptionRequestIngModule = void 0; class OrderSubscriptionRequestIngModule { constructor(bootpay) { this.bootpay = bootpay; } /** * 정기구독 일시정지 * @param params 일시정지 파라미터 */ pause(params) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.post('order_subscriptions/requests/ing/pause', params); }); } /** * 정기구독 재개 * @param params 재개 파라미터 */ resume(params) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.put('order_subscriptions/requests/ing/resume', params); }); } /** * 해지 수수료 계산 * @param orderSubscriptionId 정기구독 ID (선택) * @param orderNumber 주문번호 (선택) */ calculateTerminationFee(orderSubscriptionId, orderNumber) { return __awaiter(this, void 0, void 0, function* () { if (!orderSubscriptionId && !orderNumber) { return Promise.reject({ success: false, error: 'orderSubscriptionId or orderNumber is required' }); } const queryParams = new URLSearchParams(); if (orderSubscriptionId) { queryParams.append('order_subscription_id', orderSubscriptionId); } else if (orderNumber) { queryParams.append('order_number', orderNumber); } return this.bootpay.get(`order_subscriptions/requests/ing/calculate_termination_fee?${queryParams.toString()}`); }); } /** * 주문번호로 해지 수수료 계산 * @param orderNumber 주문번호 */ calculateTerminationFeeByOrderNumber(orderNumber) { return __awaiter(this, void 0, void 0, function* () { return this.calculateTerminationFee(undefined, orderNumber); }); } /** * 정기구독 해지 * @param params 해지 파라미터 */ termination(params) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.post('order_subscriptions/requests/ing/termination', params); }); } } exports.OrderSubscriptionRequestIngModule = OrderSubscriptionRequestIngModule; class OrderSubscriptionModule { constructor(bootpay) { this.bootpay = bootpay; this.requestIng = new OrderSubscriptionRequestIngModule(bootpay); } /** * 정기구독 목록 조회 * @param params 조회 파라미터 */ list(params) { return __awaiter(this, void 0, void 0, function* () { const queryParams = new URLSearchParams(); if (params) { if (params.page !== undefined) queryParams.append('page', params.page.toString()); if (params.limit !== undefined) queryParams.append('limit', params.limit.toString()); if (params.keyword) queryParams.append('keyword', params.keyword); if (params.s_at) queryParams.append('s_at', params.s_at); if (params.e_at) queryParams.append('e_at', params.e_at); if (params.request_type) queryParams.append('request_type', params.request_type); if (params.user_group_id) queryParams.append('user_group_id', params.user_group_id); if (params.user_id) queryParams.append('user_id', params.user_id); } const query = queryParams.toString(); return this.bootpay.get(`order_subscriptions${query ? `?${query}` : ''}`); }); } /** * 정기구독 상세 조회 * @param orderSubscriptionId 정기구독 ID */ detail(orderSubscriptionId) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.get(`order_subscriptions/${orderSubscriptionId}`); }); } /** * 정기구독 수정 * @param params 수정 파라미터 */ update(params) { return __awaiter(this, void 0, void 0, function* () { if (!params.order_subscription_id) { return Promise.reject({ success: false, error: 'order_subscription_id is required' }); } return this.bootpay.put(`order_subscriptions/${params.order_subscription_id}`, params); }); } } exports.OrderSubscriptionModule = OrderSubscriptionModule;