GetPastRankList
public BackendReturnObject GetPastRankList(string rankUuid, int limit = 10, int offset = 0)
파라미터
Value | Type | Description | Default |
---|---|---|---|
rankUuid | string | 조회할 랭킹의 uuid | - |
limit | int | 불러올 랭킹 유저의 수( 1 ~ 100) | 10 |
offset | int | 조회할 랭킹의 uuid(0이상) | 0 |
설명
랭킹 보상이 측정된 랭킹의 갱신되기 전 마지막 랭킹 순위를 불러옵니다.
- 보상이 존재하는 랭킹만 가능합니다.
- 랭킹 보상을 받은 유저들의 과거 랭킹만 표시됩니다.
- 랭킹 보상이 10등까지에게만 주어질 경우, 11등부터의 과거 랭킹은 불러올 수 없습니다.
- 순위권 밖이지만 전체 보상의 범위에 포함된 유저도 과거 랭킹에는 표시되지 않습니다.
- 특정 유저의 과거 랭킹, 내 과거 랭킹만 특정하여 불러올 수 없습니다.
- 과거 랭킹 중 제일 최신인 과거 랭킹 하나를 대상으로 불러옵니다.
- 일간 랭킹일 경우, 1일 전 과거 랭킹 데이터를 불러오게 되며 2일 전 랭킹은 불러오지 못합니다.
- limit을 0이하로 입력할 경우 1로 적용됩니다. 100이상일 경우에는 100으로 적용됩니다.
- offset을 0이하로 입력할 경우 0으로 적용됩니다.
- 닉네임이 존재하지 않는 유저의 경우, ""으로 출력됩니다.
과거 랭킹 리스트중 탈퇴한 유저가 있을 경우에는 해당 유저의 nickname과 inDate 컬럼은 존재하지 않습니다.
jsonData.ContainsKey("nickname")으로 컬럼을 확인한 뒤에 데이터를 가공해주세요.
탈퇴된 유저
{"score":"7835","rank":1}
일반 유저
{"score":"7833","rank":3,"nickname":"user1","inDate":"2024-03-06T05:59:53.523Z"}
Example
동기
// 랭킹 1위 부터 10위까지
Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0);
// 랭킹 11위(offset + 1) 부터 111위까지((offset + 1 + limit)
Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 100, 10);
비동기
Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0, callback => {
});
SendQueue
SendQueue(Backend.URank.User.GetPastRankList, "a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0, callback => {
});
ReturnCase
Success cases
조회에 성공한 경우
statusCode : 200
message : Success
returnValue : GetReturnValuetoJSON 참조
Error cases
과거 랭킹의 보상 집계가 되지 않은 경우
statusCode : 200
message : Success
returnValue : {"rows":[]}
uuid가 null 혹은 string.Empty인 경우
statusCode : 400
errorCode : ValidationException
message : rankUuid is null or empty
존재하지 않는 uuid로 조회를 시도한 경우
statusCode : 404
errorCode : NotFoundException
message : rank not found, rank을(를) 찾을 수 없습니다
누적 랭킹의 과거 랭킹을 조회 시도한 경우
statusCode : 428
errorCode : Precondition Required
message : Precondition Required rank initial type
GetReturnValuetoJSON
{
"rows": [
{
"score": "7835", // 탈퇴된 유저일 경우 nickname과 inDate가 출력되지 않습니다.
"rank": 1
}
{
"score": "5834",
"rank": 2,
"nickname": "user2",// 닉네임이 존재하지 않는 유저일 경우, ""로 출력됩니다
"inDate": "2024-03-06T05:59:53.523Z"
},
{
"score": "5121",
"rank": 3,
"nickname": "user3",
"inDate": "2024-03-06T05:59:51.568Z"
}
]
}
Sample Code
public void GetRankRewardList()
{
string rankingUUID = "a61c6980-db5f-11ee-95a9-73cbb1225013";
var bro = Backend.URank.User.GetPastRankList(rankingUUID, 100, 0);
if(bro.IsSuccess() == false) {
Debug.LogError("GetPastRankList : " + bro);
}
foreach(LitJson.JsonData jsonData in bro.Rows()) {
// 해당 유저가 탈퇴한 경우에는 nickname과 inDate의 컬럼이 존재하지 않습니다.
string nickname = jsonData.ContainsKey("nickname") ? jsonData["nickname"].ToString() : "Deleted User";
string inDate = jsonData.ContainsKey("inDate") ? jsonData["inDate"].ToString() : string.Empty;
string score = jsonData["score"].ToString();
string rank = jsonData["rank"].ToString();
Debug.Log($"{rank}.{nickname}({inDate}) : {score}점");
}
}