////
Search

강화 정책 생성 [12.22 UPDATED]

분류
신규_관리
Post
Response
Uri
/boostUpAdmin/boostUpPolicy
설명
상태
Done
Request

POST boost-server/boostUpAdmin/boostUpPolicy

@Ted Kim

1. URI 매개 변수

없음

2. 요청 본문

Name
Required
Type
Description
possibleMoments
True
string[]
강화가 가능한 시점들을 저장한 배열 허용되는 값: 'before_buy_boost' (구매 전 강화) 'after_buy_boost' (구매 후 강화) 'manual_use_boost' (후적용 강화)
title
false
string
강화 정책 제목 어드민 사용자를 위한 제목. 차이크루들에게는 보이지 않는다.
description
false
string
강화 정책 '개별 유의사항' 해당 정책만을 위한 '개별 유의사항'이 저장된다. 참고) 유의사항 = (공통 유의사항 + 스킴 확률표 + 개별 유의사항) 이때 description에 저장되는 값이 바로 '개별 유의사항'에 해당된다.
budget
True
number
강화 예산
startAt
True
string ('HH:MM' 포맷)
강화 가능 시간 (시작) 예시: '00:00', '13:34' '34:92' 같이 유효한 시간 포맷이 아닌 값은 Bad Request Exception이 던져진다.
endAt
True
string ('HH:MM' 포맷)
강화 가능 시간 (끝) startAt과 마찬가지.
status
True
string
강화 정책 상태 허용되는 값: 'enabled' (강화 정책 켜짐) 'disabled' (강화 정책 꺼짐)
boltPrice
True
number
강화를 한 번 하는데 소모되는 번개 개수
boostUpSchemePolicies
True
BoostUpSchemePolicyBody[]
강화 스킴 정책들

3. 응답

Name
Type
Description
200 OK
AddBoostUpPolicyResponse

4. 정의

BoostUpSchemePolicyBody

Name
Type
Description
probability
number
확률 (0 ~ 100 사이 값, 소수점 가능)
cashbackAmountMin
number
추가 캐시백 금액 (최소)
cashbackAmountMax
number
추가 캐시백 금액 (최대)
cashbackAmountUnit
number
추가 캐시백 금액 단위
discountRate
number
추가 할인률 (0 ~ 100 사이 정수)
result
string
부스트 강화 결과 허용되는 값: 'win' (성공) 'miss' (실패) 'jackpot' (잭팟)
level
number
강화 성공 레벨 성공을 세분화하기 위한 레벨로, 실패 및 잭팟의 경우 기본적으로 1로 설정된다.

AddBoostUpPolicyResponse

Name
Type
Description
id
number
생성된 BoostUpPolicyEntity의 id

5. 예제

Request 1

정상 요청
Request Body
{ "possibleMoments": [ "before_buy_boost", "after_buy_boost", "manual_use_boost" ], "budget": 100000, "startAt": "2021-12-04T00:00:00", "endAt": "2021-12-31T23:59:59", "status": "enabled", "boltPrice": 1, "boostUpSchemePolicies": [ { "probability": 60, "cashbackAmountMin": 50, "cashbackAmountMax": 100, "cashbackAmountUnit": 10, "discountRate": 2, "result": "win", "level": 1 }, { "probability": 30, "cashbackAmountMin": 101, "cashbackAmountMax": 180, "cashbackAmountUnit": 10, "discountRate": 3, "result": "win", "level": 2 }, { "probability": 6.6, "cashbackAmountMin": 181, "cashbackAmountMax": 200, "cashbackAmountUnit": 10, "discountRate": 5, "result": "win", "level": 3 }, { "probability": 3, "cashbackAmountMin": 0, "cashbackAmountMax": 0, "cashbackAmountUnit": 0, "discountRate": 0, "result": "miss", "level": 1 }, { "probability": 0.4, "cashbackAmountMin": 20000, "cashbackAmountMax": 20000, "cashbackAmountUnit": 0, "discountRate": 100, "result": "jackpot", "level": 1 } ] }
JSON
복사
Response
Status Code: 200
{ "success": true }
JSON
복사

Request 2

boostUpSchemePolicies의 probability 합이 100%가 아닌 경우
Request Body
{ ... "boostUpSchemePolicies": [ { "probability": 10, ... }, { "probability": 10, ... }, { "probability": 10, ... }, { "probability": 10, ... }, { "probability": 10, ... } ] }
JSON
복사
스킴 확률 합이 50임
Response
Status Code: 400
{ "message": "Bad Request Exception", "validation": [ "scheme policy probability sum should be 100%" ] }
JSON
복사

Request 3

BoostUpSchemePolicy 중에 하나라도 cashbackAmountMin > cashbackAmountMax인 경우
Request Body
{ ... "boostUpSchemePolicies": [ { ... "cashbackAmountMin": 150, "cashbackAmountMax": 100, ... }, ] }
JSON
복사
Response
Status Code: 400
{ "message": "Bad Request Exception", "validation": [ "boostUpSchemePolicies.0.cashbackAmountMin should be less than or equal to cashbackAmountMax" ] }
JSON
복사

Request 4

이외에 invalid한 값들 넘어올 경우
Request Body
{ "possibleMoments": [ "before_buy_boost2", "after_buy_boost2", "manual_use_boost2" ], "budget": -12312, "startAt": "2021-12-", "endAt": "2021-12-31T23", "status": "enabled2", "boltPrice": -21, "boostUpSchemePolicies": [ { "probability": 93, "cashbackAmountMin": 309, "cashbackAmountMax": 200, "cashbackAmountUnit": 10, "discountRate": 0, "result": "success2" }, { "probability": 1, "cashbackAmountMin": 0, "cashbackAmountMax": 0, "cashbackAmountUnit": 0, "discountRate": 0, "result": "failed2" }, { "probability": 0.1, "cashbackAmountMin": 310000, "cashbackAmountMax": 20000, "cashbackAmountUnit": 0, "discountRate": 1, "result": "jackpot2" } ] }
JSON
복사
Response
Status Code: 400
{ "message": "Bad Request Exception", "validation": [ "each value in possibleMoments must be a valid enum value", "budget must be a positive number", "endAt must be a Date instance", "status must be a valid enum value", "boltPrice must be a positive number", "boostUpSchemePolicies.0.cashbackAmountMin should be less than or equal to cashbackAmountMax", "boostUpSchemePolicies.0.result must be a valid enum value", "boostUpSchemePolicies.1.result must be a valid enum value", "boostUpSchemePolicies.2.cashbackAmountMin should be less than or equal to cashbackAmountMax", "boostUpSchemePolicies.2.result must be a valid enum value" ] }
JSON
복사