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
복사