Files
DedicatedServerCourse/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestManager.cpp
2026-04-05 17:07:48 -04:00

65 lines
2.0 KiB
C++

// 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<FJsonObject> 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<FJsonObject> JsonObject)
{
if (JsonObject->HasField(TEXT("$metadata")))
{
TSharedPtr<FJsonObject> MetaDataJsonObject = JsonObject->GetObjectField(TEXT("$metadata"));
FDSMetaData DSMetaData;
FJsonObjectConverter::JsonObjectToUStruct(MetaDataJsonObject.ToSharedRef(), &DSMetaData);
DSMetaData.Dump();
}
}
FString UHTTPRequestManager::SerializeJsonContent(const TMap<FString, FString>& Params)
{
TSharedPtr<FJsonObject> ContentJsonObject = MakeShareable(new FJsonObject);
for (auto Param : Params)
{
ContentJsonObject->SetStringField(Param.Key, Param.Value);
}
FString Content;
TSharedRef<TJsonWriter<>> JsonWriter = TJsonWriterFactory<>::Create(&Content);
FJsonSerializer::Serialize(ContentJsonObject.ToSharedRef(), JsonWriter);
return Content;
}