// Fill out your copyright notice in the Description page of Project Settings. #include "UI/HTTP/HTTPRequestManager.h" #include "JsonObjectConverter.h" #include "DedicatedServers/DedicatedServers.h" #include "UI/HTTP/HTTPRequestTypes.h" bool UHTTPRequestManager::ContainsErrors(TSharedPtr JsonObject, bool bLogErrors) { if (JsonObject->HasField(TEXT("errorType")) || JsonObject->HasField(TEXT("errorMessage"))) { FString ErrorType = JsonObject->HasField(TEXT("errorType")) ? JsonObject->GetStringField(TEXT("errorType")) : FString("Unknown Error"); FString ErrorMessage = JsonObject->HasField(TEXT("errorMessage")) ? JsonObject->GetStringField(TEXT("errorMessage")) : FString("Unknown Error Message"); if (bLogErrors) { UE_LOGFMT(LogDedicatedServers, Error, "Error Type: {ErrorType}", ErrorType); UE_LOGFMT(LogDedicatedServers, Error, "Error Message: {ErrorMessage}", ErrorMessage); } return true; } if (JsonObject->HasField(TEXT("$fault"))) { FString ErrorType = JsonObject->HasField(TEXT("name")) ? JsonObject->GetStringField(TEXT("name")) : FString("Unknown Error"); if (bLogErrors) { UE_LOGFMT(LogDedicatedServers, Error, "Error Type: {ErrorType}", ErrorType); } return true; } return false; } void UHTTPRequestManager::DumpMetadata(TSharedPtr JsonObject) { if (JsonObject->HasField(TEXT("$metadata"))) { TSharedPtr MetaDataJsonObject = JsonObject->GetObjectField(TEXT("$metadata")); FDSMetaData DSMetaData; FJsonObjectConverter::JsonObjectToUStruct(MetaDataJsonObject.ToSharedRef(), &DSMetaData); DSMetaData.Dump(); } } FString UHTTPRequestManager::SerializeJsonContent(const TMap& Params) { TSharedPtr ContentJsonObject = MakeShareable(new FJsonObject); for (auto Param : Params) { ContentJsonObject->SetStringField(Param.Key, Param.Value); } FString Content; TSharedRef> JsonWriter = TJsonWriterFactory<>::Create(&Content); FJsonSerializer::Serialize(ContentJsonObject.ToSharedRef(), JsonWriter); return Content; }