UNPKG

@bootpay/backend-js

Version:

Bootpay Server Side Package for Node.js

114 lines (113 loc) 4.36 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.UserGroupModule = void 0; class UserGroupModule { constructor(bootpay) { this.bootpay = bootpay; } /** * 사용자 그룹 생성 * @param userGroup 그룹 정보 */ create(userGroup) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.post('user-groups', userGroup); }); } /** * 사용자 그룹 목록 조회 * @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.corporate_type !== undefined) queryParams.append('corporate_type', params.corporate_type.toString()); } const query = queryParams.toString(); return this.bootpay.get(`user-groups${query ? `?${query}` : ''}`); }); } /** * 사용자 그룹 상세 조회 * @param userGroupId 그룹 ID */ detail(userGroupId) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.get(`user-groups/${userGroupId}`); }); } /** * 사용자 그룹 수정 * @param userGroup 그룹 정보 */ update(userGroup) { return __awaiter(this, void 0, void 0, function* () { if (!userGroup.user_group_id) { return Promise.reject({ success: false, error: 'user_group_id is required' }); } return this.bootpay.put(`user-groups/${userGroup.user_group_id}`, userGroup); }); } /** * 그룹에 사용자 추가 * @param userGroupId 그룹 ID * @param userId 사용자 ID */ userCreate(userGroupId, userId) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.post(`user-groups/${userGroupId}/add_user`, { user_id: userId }); }); } /** * 그룹에서 사용자 제거 * @param userGroupId 그룹 ID * @param userId 사용자 ID */ userDelete(userGroupId, userId) { return __awaiter(this, void 0, void 0, function* () { return this.bootpay.delete(`user-groups/${userGroupId}/remove_user?user_id=${userId}`); }); } /** * 그룹 제한 설정 * @param params 제한 설정 파라미터 */ limit(params) { return __awaiter(this, void 0, void 0, function* () { if (!params.user_group_id) { return Promise.reject({ success: false, error: 'user_group_id is required' }); } return this.bootpay.put(`user-groups/${params.user_group_id}/limit`, params); }); } /** * 그룹 거래 집계 조회 * @param params 집계 파라미터 */ aggregateTransaction(params) { return __awaiter(this, void 0, void 0, function* () { if (!params.user_group_id) { return Promise.reject({ success: false, error: 'user_group_id is required' }); } return this.bootpay.put(`user-groups/${params.user_group_id}/aggregate-transaction`, params); }); } } exports.UserGroupModule = UserGroupModule;