본문으로 건너뛰기
버전: 5.15.0

GetPastLeaderboard

public BackendGuildPastLeaderboardReturnObject GetPastLeaderboard(string leaderboardUuid, int limit = 10, int offset = 0)

파라미터

ValueTypeDescriptionDefault
leaderboardUuidstring조회할 리더보드의 uuid-
limitint불러올 리더보드 길드의 수( 1 ~ 100)10
offsetint조회할 리더보드의 uuid(0이상)0

설명

랭킹 보상이 측정된 랭킹의 갱신되기 전 마지막 랭킹 순위를 불러옵니다.

  • 보상이 존재하는 랭킹만 가능합니다.
  • 랭킹 보상을 받은 길드들의 과거 랭킹만 표시됩니다.
    • 랭킹 보상이 10등까지에게만 주어질 경우, 11등부터의 과거 랭킹은 불러올 수 없습니다.
    • 순위권 밖이지만 전체 보상의 범위에 포함된 길드도 과거 랭킹에는 표시되지 않습니다.
  • 특정 길드의 과거 랭킹, 내 과거 랭킹만 특정하여 불러올 수 없습니다.
  • 과거 랭킹 중 제일 최신인 과거 랭킹 하나를 대상으로 불러옵니다.
    • 일간 랭킹일 경우, 1일 전 과거 랭킹 데이터를 불러오게 되며 2일 전 랭킹은 불러오지 못합니다.
  • limit을 0이하로 입력할 경우 1로 적용됩니다. 100이상일 경우에는 100으로 적용됩니다.
  • offset을 0이하로 입력할 경우 0으로 적용됩니다.
  • 해당 함수는 SendQueue로 호출할 수 없습니다.
탈퇴 길드의 경우

과거 랭킹 리스트중 탈퇴한 길드가 있을 경우에는 해당 길드의 guildInDate와 guildName 컬럼은 존재하지 않습니다.
jsonData.ContainsKey("guildName")으로 컬럼을 확인한 뒤에 데이터를 가공해주세요.

탈퇴된 길드

{"score":"7835","rank":1}

일반 길드

{"score":"7834","rank":2,"guildInDate":"2024-03-06T05:59:54.716Z","guildName":"기사단"}

BackendGuildPastLeaderboardReturnObject

namespace BackEnd.Leaderboard
{
public class GuildPastLeaderboardItem
{
public string guildName;
public string guildInDate;
public string score;
public string rank;
}

public class BackendGuildPastLeaderboardReturnObject : BackendReturnObject
{
public List<GuildPastLeaderboardItem> GetGuildPastLeaderboardList();
}
}

Example

동기


// 리더보드 1위 부터 10위까지
BackEnd.Leaderboard.BackendGuildPastLeaderboardReturnObject bro = Backend.Leaderboard.Guild.GetPastLeaderboard("01920445-a435-759e-bc3b-048a1e7a87aa");

foreach(BackEnd.Leaderboard.GuildPastLeaderboardItem item in bro.GetGuildPastLeaderboardList())
{
string name = $"[{item.rank}] {item.guildName} : {item.score}";
Debug.Log(item);
}

// 리더보드 11위(offset + 1) 부터 111위까지((offset + 1 + limit)
Backend.Leaderboard.Guild.GetPastLeaderboard("a61c6980-db5f-11ee-95a9-73cbb1225013", 100, 10);

비동기

Backend.Leaderboard.Guild.GetPastLeaderboard("a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0, callback => {
foreach(BackEnd.Leaderboard.GuildPastLeaderboardItem item in callback.GetGuildPastLeaderboardList())
{
string name = $"[{item.rank}] {item.guildName} : {item.score}";
Debug.Log(item);
}
});

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 : leaderboardUuid is null or empty

존재하지 않는 uuid로 조회를 시도한 경우
statusCode : 404
errorCode : NotFoundException
message : leaderboard not found, leaderboard을(를) 찾을 수 없습니다

누적 리더보드의 과거 리더보드을 조회 시도한 경우
statusCode : 428
errorCode : Precondition Required
message : Precondition Required rank initial type

GetReturnValuetoJSON

{
"rows": [
{
"score": "7835", // 탈퇴된 길드일 경우 nickname과 inDate가 출력되지 않습니다.
"rank": 1
}
{
"score": "5834",
"rank": 2,
"guildName": "Guild2",
"guildInDate": "2024-03-06T05:59:53.523Z"
},
{
"score": "5121",
"rank": 3,
"guildName": "Guild3",
"guildInDate": "2024-03-06T05:59:51.568Z"
}
]
}