From 354cca5b12a63bbc7c31459a8936dd843947c5af Mon Sep 17 00:00:00 2001 From: tudor <7089284+tudddorrr@users.noreply.github.com> Date: Wed, 25 Feb 2026 21:02:45 +0000 Subject: [PATCH] add options for getting cached entries and aliasService filter --- .../Talo/Runtime/APIs/LeaderboardsAPI.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Assets/Talo Game Services/Talo/Runtime/APIs/LeaderboardsAPI.cs b/Assets/Talo Game Services/Talo/Runtime/APIs/LeaderboardsAPI.cs index 48f07ad..abd9b0e 100644 --- a/Assets/Talo Game Services/Talo/Runtime/APIs/LeaderboardsAPI.cs +++ b/Assets/Talo Game Services/Talo/Runtime/APIs/LeaderboardsAPI.cs @@ -16,6 +16,7 @@ public class GetEntriesOptions public string propValue = ""; public string startDate = ""; public string endDate = ""; + public string aliasService = ""; public string ToQueryString() { @@ -27,22 +28,37 @@ public string ToQueryString() if (!string.IsNullOrEmpty(propValue)) query["propValue"] = propValue; if (!string.IsNullOrEmpty(startDate)) query["startDate"] = startDate; if (!string.IsNullOrEmpty(endDate)) query["endDate"] = endDate; + if (!string.IsNullOrEmpty(aliasService)) query["aliasService"] = aliasService; return string.Join("&", query.Select((param) => $"{param.Key}={param.Value}")); } } + public class GetCachedEntriesOptions + { + public int aliasId = -1; + public string playerId = ""; + public string aliasService = ""; + } + public class LeaderboardsAPI : BaseAPI { private readonly LeaderboardEntriesManager _entriesManager = new(); public LeaderboardsAPI() : base("v1/leaderboards") { } - public List GetCachedEntries(string internalName) + public List GetCachedEntries(string internalName, GetCachedEntriesOptions options = null) { - return _entriesManager.GetEntries(internalName); + options ??= new GetCachedEntriesOptions(); + + return _entriesManager.GetEntries(internalName).FindAll(e => + (options.aliasId == -1 || e.playerAlias.id == options.aliasId) && + (string.IsNullOrEmpty(options.playerId) || e.playerAlias.player.id == options.playerId) && + (string.IsNullOrEmpty(options.aliasService) || e.playerAlias.service == options.aliasService) + ); } + [Obsolete("Use GetCachedEntries(string internalName, GetCachedEntriesOptions options) with the aliasId or playerId option instead.")] public List GetCachedEntriesForCurrentPlayer(string internalName) { Talo.IdentityCheck();