Ranking reforge. SplitRanking is not implemented yet !!!
This commit is contained in:
@ -11,6 +11,7 @@
|
||||
#include "Struct/DTFluxServerResponseStruct.h"
|
||||
#include "Struct/DTFluxRequestStructs.h"
|
||||
#include "Struct/DTFluxRaceDataServerResponse.h"
|
||||
#include "Struct/DTFluxRankingServerResponse.h"
|
||||
#include "Struct/DTFluxTeamListServerResponse.h"
|
||||
#include "Types/Struct/DTFluxRaceDataStructs.h"
|
||||
|
||||
@ -192,6 +193,7 @@ void UFDTFluxNetworkSubsystem::OnWebSocketClosedEvent_Subsystem(int32 StatusCode
|
||||
*WsClient->GetAddress(), *Reason, StatusCode, bWasClean ? TEXT("True") : TEXT("False"));
|
||||
}
|
||||
|
||||
//TODO reforge API to keep track of Requests
|
||||
void UFDTFluxNetworkSubsystem::OnWebSocketMessageEvent_Subsystem(const FString& MessageString)
|
||||
{
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws %s :\nMessage Received : %s"), *WsClient->GetAddress(), *MessageString);
|
||||
@ -265,8 +267,41 @@ void UFDTFluxNetworkSubsystem::OnWebSocketMessageEvent_Subsystem(const FString&
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws Team-List Data Sent"));
|
||||
return OnTeamListReceived.Broadcast(TeamListDefinition);
|
||||
}
|
||||
if(Response.Type.Contains("contest-ranking"))
|
||||
{
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws Contest-Ranking Data"));
|
||||
FDTFluxContestRankingResponse ContestRankingResponse;
|
||||
FJsonObjectConverter::JsonObjectStringToUStruct<FDTFluxContestRankingResponse>(Response.RawMessage, &ContestRankingResponse);
|
||||
FDTFluxContestRankings ContestRankings;
|
||||
ContestRankings.ContestId = ContestRankingResponse.ContestID;
|
||||
for(auto& RankingItem : ContestRankingResponse.Datas)
|
||||
{
|
||||
FDTFluxContestRanking Temp = RankingItem;
|
||||
ContestRankings.Rankings.Add(Temp);
|
||||
}
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws ContestRanking Data Sent for Contest %i"), ContestRankings.ContestId);
|
||||
return OnContestRankingReceived.Broadcast(ContestRankings);
|
||||
}
|
||||
if(Response.Type.Contains("stage-ranking") )
|
||||
{
|
||||
// StageRanking
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws Stage-Ranking Data"));
|
||||
FDTFluxStageRankingResponse StageRankingResponse;
|
||||
FJsonObjectConverter::JsonObjectStringToUStruct<FDTFluxStageRankingResponse>(Response.RawMessage, &StageRankingResponse);
|
||||
FDTFluxStageRankings StageRankings;
|
||||
StageRankings.ContestId = StageRankingResponse.ContestId;
|
||||
StageRankings.StageId = StageRankingResponse.StageId;
|
||||
StageRankings.SplitId = StageRankingResponse.SplitId;
|
||||
for(FDTFluxStageRanking& InRanking : StageRankingResponse.Datas)
|
||||
{
|
||||
FDTFluxStageRanking Temp = InRanking;
|
||||
StageRankings.Rankings.Add(InRanking);
|
||||
}
|
||||
UE_LOG(logDTFluxNetwork, Warning, TEXT("Ws StageRanking Data Sent for Contest %i and Stage %i\n[Result] : %s"),
|
||||
StageRankings.ContestId, StageRankings.StageId, OnStageRankingReceived.ExecuteIfBound(StageRankings) ? TEXT("Executed") : TEXT("Not Bound !!!"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
UE_LOG(logDTFluxNetwork, Error, TEXT("Ws %s :\nMessage Cannot be Parsed\n%s"), *WsClient->GetAddress(), *MessageString);
|
||||
|
||||
}
|
||||
UE_LOG(logDTFluxNetwork, Error, TEXT("Ws %s :\nMessage Received : %s Cannot be Parsed"), *WsClient->GetAddress(), *MessageString);
|
||||
|
||||
Reference in New Issue
Block a user