Skip to content

Commit

Permalink
feature: Add support for getting leaderboard schedule
Browse files Browse the repository at this point in the history
  • Loading branch information
kirre-bylund committed Nov 14, 2024
1 parent 80855b0 commit 590bde2
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAllMemberRanks = InitEn
FLootLockerServerEndPoint ULootLockerServerEndpoints::GetScoresFromLeaderboard = InitEndpoint("leaderboards/{0}/list", ELootLockerServerHTTPMethod::GET);
FLootLockerServerEndPoint ULootLockerServerEndpoints::ListLeaderboardArchive = InitEndpoint("leaderboards/{0}/archive/list", ELootLockerServerHTTPMethod::GET);
FLootLockerServerEndPoint ULootLockerServerEndpoints::GetLeaderboardArchive = InitEndpoint("leaderboards/archive/read", ELootLockerServerHTTPMethod::GET);
FLootLockerServerEndPoint ULootLockerServerEndpoints::GetLeaderboardSchedule = InitEndpoint("leaderboards/{0}/schedule", ELootLockerServerHTTPMethod::GET);

// Assets
FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAssets = InitEndpoint("assets", ELootLockerServerHTTPMethod::GET);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ void ULootLockerServerForBlueprints::GetPaginatedScoresFromLeaderboard(const FSt
ULootLockerServerLeaderboardRequest::GetPaginatedScoresFromLeaderboard(LeaderboardKey, Count, After, OnCompletedRequest);
}

void ULootLockerServerForBlueprints::GetLeaderboardSchedule(const FString& LeaderboardKey, const FLootLockerServerGetLeaderboardScheduleResponseBP& OnCompletedRequest)
{
ULootLockerServerLeaderboardRequest::GetLeaderboardSchedule(LeaderboardKey, OnCompletedRequest);
}

void ULootLockerServerForBlueprints::ListLeaderboardArchive(const FString& LeaderboardKey, const FLootLockerServerLeaderboardArchiveResponseBP& OnCompletedRequestBP)
{
ULootLockerServerLeaderboardArchiveRequestHandler::ListLeaderboardArchive(LeaderboardKey, OnCompletedRequestBP);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ void ULootLockerServerForCpp::GetPaginatedScoresFromLeaderboard(FString Leaderbo
ULootLockerServerLeaderboardRequest::GetPaginatedScoresFromLeaderboard(LeaderboardKey, Count, After, FLootLockerServerGetScoresFromLeaderboardResponseBP(), OnCompletedRequest);
}

void ULootLockerServerForCpp::GetLeaderboardSchedule(const FString& Key, const FLootLockerServerGetLeaderboardScheduleResponseDelegate& OnCompletedRequest)
{
ULootLockerServerLeaderboardRequest::GetLeaderboardSchedule(Key, FLootLockerServerGetLeaderboardScheduleResponseBP(), OnCompletedRequest);
}

void ULootLockerServerForCpp::ListLeaderboardArchive(const FString& LeaderboardKey, const FLootLockerServerLeaderboardArchiveResponseDelegate& OnCompletedRequest)
{
ULootLockerServerLeaderboardArchiveRequestHandler::ListLeaderboardArchive(LeaderboardKey, FLootLockerServerLeaderboardArchiveResponseBP(), OnCompletedRequest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,8 @@ void ULootLockerServerLeaderboardRequest::GetPaginatedScoresFromLeaderboard(cons
}
ULootLockerServerHttpClient::SendRequest<FLootLockerServerGetScoresFromLeaderboardResponse>(FLootLockerServerEmptyRequest(), ULootLockerServerEndpoints::GetScoresFromLeaderboard, { LeaderboardKey }, QueryParams, OnCompletedRequestBP, OnCompletedRequest);
}

void ULootLockerServerLeaderboardRequest::GetLeaderboardSchedule(const FString& LeaderboardKey, const FLootLockerServerGetLeaderboardScheduleResponseBP& OnCompletedRequestBP, const FLootLockerServerGetLeaderboardScheduleResponseDelegate& OnCompletedRequest)
{
ULootLockerServerHttpClient::SendRequest<FLootLockerServerGetLeaderboardScheduleResponse>(FLootLockerServerEmptyRequest(), ULootLockerServerEndpoints::GetLeaderboardSchedule, { LeaderboardKey }, {}, OnCompletedRequestBP, OnCompletedRequest);
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerEndpoints : public UObject
static FLootLockerServerEndPoint GetScoresFromLeaderboard;
static FLootLockerServerEndPoint ListLeaderboardArchive;
static FLootLockerServerEndPoint GetLeaderboardArchive;
static FLootLockerServerEndPoint GetLeaderboardSchedule;

// Assets
static FLootLockerServerEndPoint GetAssets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,14 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForBlueprints : public UObject
UFUNCTION(BlueprintCallable, Category = "LootLockerServer Methods | Leaderboards")
static void GetPaginatedScoresFromLeaderboard(FString LeaderboardKey, int Count, int After, const FLootLockerServerGetScoresFromLeaderboardResponseBP& OnCompletedRequest);

/**
* Get the schedule for the specified leaderboard
* @param Key the Key of the leaderboard for which to fetch the schedule
* @param OnCompletedRequestBP Delegate for handling the server response
*/
UFUNCTION(BlueprintCallable, Category = "LootLockerServer Methods | Leaderboard")
static void GetLeaderboardSchedule(const FString& Key, const FLootLockerServerGetLeaderboardScheduleResponseBP& OnCompletedRequestBP);

//==================================================
// Leaderboard Archives
//==================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,13 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForCpp : public UObject
*/
static void GetPaginatedScoresFromLeaderboard(FString LeaderboardKey, int Count, int After, const FLootLockerServerGetScoresFromLeaderboardResponseDelegate& OnCompletedRequest);

/**
* Get the schedule for the specified leaderboard
* @param Key the Key of the leaderboard for which to fetch the schedule
* @param OnCompletedRequest Delegate for handling the server response
*/
static void GetLeaderboardSchedule(const FString& Key, const FLootLockerServerGetLeaderboardScheduleResponseDelegate& OnCompletedRequest);

//==================================================
// Leaderboard Archives
//==================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,20 @@ struct FLootLockerServerGetScoresFromLeaderboardResponse : public FLootLockerSer
TArray<FLootLockerServerLeaderboardEntry> Items;
};

USTRUCT(BlueprintType)
struct FLootLockerServerGetLeaderboardScheduleResponse : public FLootLockerServerResponse
{
GENERATED_BODY()
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer")
FString cron_expression;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer")
FString next_run;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer")
FString last_run;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer")
TArray<FString> schedule;
};

//==================================================
// Blueprint Delegate Definitions
//==================================================
Expand Down Expand Up @@ -691,6 +705,10 @@ DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerGetAllMemberRanksResponseBP,
Blueprint response delegate for getting scores from a leaderboard
*/
DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerGetScoresFromLeaderboardResponseBP, FLootLockerServerGetScoresFromLeaderboardResponse, Response);
/*
Blueprint response delegate for getting the schedule for a leaderboard
*/
DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerGetLeaderboardScheduleResponseBP, FLootLockerServerGetLeaderboardScheduleResponse, Response);

//==================================================
// C++ Delegate Definitions
Expand Down Expand Up @@ -725,6 +743,10 @@ DECLARE_DELEGATE_OneParam(FLootLockerServerGetAllMemberRanksResponseDelegate, FL
C++ response delegate for getting scores from a leaderboard
*/
DECLARE_DELEGATE_OneParam(FLootLockerServerGetScoresFromLeaderboardResponseDelegate, FLootLockerServerGetScoresFromLeaderboardResponse);
/*
C++ response delegate for getting the schedule for a leaderboard
*/
DECLARE_DELEGATE_OneParam(FLootLockerServerGetLeaderboardScheduleResponseDelegate, FLootLockerServerGetLeaderboardScheduleResponse);

//==================================================
// Interface Definition
Expand All @@ -744,6 +766,8 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerLeaderboardRequest : public UObje
static void GetScoresFromLeaderboard(FString LeaderboardKey, const FLootLockerServerGetScoresFromLeaderboardResponseBP& OnCompletedRequestBP = FLootLockerServerGetScoresFromLeaderboardResponseBP(), const FLootLockerServerGetScoresFromLeaderboardResponseDelegate& OnCompletedRequest = FLootLockerServerGetScoresFromLeaderboardResponseDelegate());
static void GetPaginatedScoresFromLeaderboard(FString LeaderboardKey, int Count, int After, const FLootLockerServerGetScoresFromLeaderboardResponseBP& OnCompletedRequestBP = FLootLockerServerGetScoresFromLeaderboardResponseBP(), const FLootLockerServerGetScoresFromLeaderboardResponseDelegate& OnCompletedRequest = FLootLockerServerGetScoresFromLeaderboardResponseDelegate());

static void GetLeaderboardSchedule(const FString& LeaderboardKey, const FLootLockerServerGetLeaderboardScheduleResponseBP& OnCompletedRequestBP = FLootLockerServerGetLeaderboardScheduleResponseBP(), const FLootLockerServerGetLeaderboardScheduleResponseDelegate& OnCompletedRequest = FLootLockerServerGetLeaderboardScheduleResponseDelegate());

public:
ULootLockerServerLeaderboardRequest();
};

0 comments on commit 590bde2

Please sign in to comment.