65 lines
2.2 KiB
C++
65 lines
2.2 KiB
C++
// ©2022 Batty Bovine Productions, LLC. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
#include "API/BugzillaJSONStructs.h"
|
|
#include "API/UnrealzillaBugDataStructs.h"
|
|
#include "Interfaces/IHttpRequest.h"
|
|
#include "Interfaces/IHttpResponse.h"
|
|
|
|
#include "ServerAPI.generated.h"
|
|
|
|
|
|
/**
|
|
* Class for communicating with REST API on bug tracking software
|
|
*/
|
|
UCLASS()
|
|
class UNREALZILLA_API UServerAPI : public UObject
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
virtual void Initialize() {}
|
|
|
|
virtual void ReturnListOfBugs();
|
|
virtual void PrepareForm();
|
|
virtual void SendFormData(const FUnrealzillaPostData &PostData);
|
|
|
|
TArray<FString> GetComponentsList() const { return this->ComponentsList; }
|
|
TArray<FString> GetSeverityList() const { return this->SeverityList; }
|
|
TArray<FString> GetVersionsList() const { return this->VersionsList; }
|
|
TArray<FString> GetPlatformsList() const { return this->PlatformsList; }
|
|
TArray<FString> GetOSList() const { return this->OSList; }
|
|
|
|
DECLARE_DELEGATE_OneParam(FBugListResponseDelegate, const TArray<FUnrealzillaBugData>&);
|
|
DECLARE_DELEGATE_OneParam(FFormResponseDelegate, const FUnrealzillaFormPrepData&);
|
|
DECLARE_DELEGATE_OneParam(FServerErrorResponseDelegate, const FUnrealzillaErrorData &);
|
|
|
|
FBugListResponseDelegate BugDataResponse;
|
|
FFormResponseDelegate FormDataResponse;
|
|
FServerErrorResponseDelegate ErrorResponse;
|
|
|
|
protected:
|
|
void ServerConnectionError(const EHttpRequestStatus::Type Status);
|
|
|
|
void CreateError(const EErrorVerb &Verb, const FBugzillaJSONPostResponse &Data);
|
|
void CreateError(const EErrorVerb &Verb, const FBugzillaJSONProductResponse &Data);
|
|
void CreateError(const EErrorVerb &Verb, const FBugzillaJSONFieldResponse &Data);
|
|
void CreateError(const EErrorVerb &Verb, const FBugzillaJSONBugResponse &Data);
|
|
void CreateError(const FString &ErrorMessage, const bool bCancelForm = false);
|
|
|
|
static const FString URLBuilder(const FString &Server, const FString &Path);
|
|
static const FString FormatQueryString(const TMap<FString, FString> &QueryData);
|
|
static const FString GetGameVersion();
|
|
|
|
TArray<FString> ComponentsList;
|
|
TArray<FString> SeverityList;
|
|
TArray<FString> VersionsList;
|
|
TArray<FString> PlatformsList;
|
|
TArray<FString> OSList;
|
|
|
|
FString FullURL;
|
|
};
|