@bootpay/backend-js
Version:
Bootpay Server Side Package for Node.js
114 lines (113 loc) • 4.36 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.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;