@bootpay/backend-js
Version:
Bootpay Server Side Package for Node.js
135 lines (134 loc) • 5.43 kB
JavaScript
;
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;