diff --git a/Source/DedicatedServers/DedicatedServers.cpp b/Source/DedicatedServers/DedicatedServers.cpp index 21a0197e..b2eebc4b 100644 --- a/Source/DedicatedServers/DedicatedServers.cpp +++ b/Source/DedicatedServers/DedicatedServers.cpp @@ -4,3 +4,5 @@ #include "Modules/ModuleManager.h" IMPLEMENT_MODULE( FDefaultModuleImpl, DedicateServers ); + +DEFINE_LOG_CATEGORY(LogDedicatedServers); diff --git a/Source/DedicatedServers/DedicatedServers.h b/Source/DedicatedServers/DedicatedServers.h index ddbf2e22..b89475f9 100644 --- a/Source/DedicatedServers/DedicatedServers.h +++ b/Source/DedicatedServers/DedicatedServers.h @@ -3,3 +3,5 @@ #pragma once #include "CoreMinimal.h" + +DECLARE_LOG_CATEGORY_EXTERN(LogDedicatedServers, Log, All) \ No newline at end of file diff --git a/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp index 758029c0..04a5820f 100644 --- a/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp +++ b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp @@ -3,9 +3,11 @@ #include "UI/API_Test/APITestManager.h" #include "HttpModule.h" +#include "JsonObjectConverter.h" #include "Data/API/APIData.h" #include "GameplayTags/DedicatedServersTags.h" #include "Interfaces/IHttpResponse.h" +#include "UI/HTTP/HTTPRequestTypes.h" void UAPITestManager::ListFleetsButtonClicked() { @@ -33,13 +35,12 @@ void UAPITestManager::ListFleets_Response(FHttpRequestPtr Request, FHttpResponse TSharedRef> JsonReader = TJsonReaderFactory<>::Create(Response->GetContentAsString()); if (FJsonSerializer::Deserialize(JsonReader, JsonObject)) { - if (JsonObject->HasField(TEXT("FleetIds"))) + if (JsonObject->HasField(TEXT("$metadata"))) { - for (TSharedPtr Fleet :JsonObject->GetArrayField(TEXT("FleetIds"))) - { - FString FleetString = Fleet->AsString(); - GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, FleetString); - } + TSharedPtr MetaDataJsonObject = JsonObject->GetObjectField(TEXT("$metadata")); + FDS_MetaData DSMetaData; + FJsonObjectConverter::JsonObjectToUStruct(MetaDataJsonObject.ToSharedRef(), &DSMetaData); + DSMetaData.Dump(); } } } diff --git a/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp new file mode 100644 index 00000000..ab5c71b2 --- /dev/null +++ b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp @@ -0,0 +1,11 @@ +#include "UI/HTTP/HTTPRequestTypes.h" +#include "DedicatedServers/DedicatedServers.h" + +void FDS_MetaData::Dump() const +{ + UE_LOGFMT(LogDedicatedServers, Log, "MetaData:"); + UE_LOGFMT(LogDedicatedServers, Log, "httpStatusCode: {httpStatusCode}", httpStatusCode); + UE_LOGFMT(LogDedicatedServers, Log, "requestId: {requestId}", requestId); + UE_LOGFMT(LogDedicatedServers, Log, "attemps: {attempts}", attempts); + UE_LOGFMT(LogDedicatedServers, Log, "totalRetryDelay: {totalRetryDelay}", totalRetryDelay); +} diff --git a/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.h b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.h new file mode 100644 index 00000000..86a7a3ea --- /dev/null +++ b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.h @@ -0,0 +1,27 @@ +#pragma once + +// Because this is in the private section is is still usable by the DedicatedServer Module, but not outside of the module. + +#include "HTTPRequestTypes.generated.h" + +USTRUCT() +struct FDS_MetaData +{ + GENERATED_BODY() + +public: + + UPROPERTY() + int32 httpStatusCode{}; + + UPROPERTY() + FString requestId{}; + + UPROPERTY() + int32 attempts{}; + + UPROPERTY() + double totalRetryDelay{}; + + void Dump() const; +}; \ No newline at end of file