/** * OpenAPI Petstore * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. * * OpenAPI spec version: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator * https://github.com/OpenAPITools/openapi-generator * Do not edit the class manually. */ #include "OpenAPIUserApi.h" #include "OpenAPIUserApiOperations.h" #include "OpenAPIModule.h" #include "HttpModule.h" #include "Serialization/JsonSerializer.h" namespace OpenAPI { OpenAPIUserApi::OpenAPIUserApi() : Url(TEXT("http://petstore.swagger.io/v2")) { } OpenAPIUserApi::~OpenAPIUserApi() {} void OpenAPIUserApi::SetURL(const FString& InUrl) { Url = InUrl; } void OpenAPIUserApi::AddHeaderParam(const FString& Key, const FString& Value) { AdditionalHeaderParams.Add(Key, Value); } void OpenAPIUserApi::ClearHeaderParams() { AdditionalHeaderParams.Reset(); } bool OpenAPIUserApi::IsValid() const { if (Url.IsEmpty()) { UE_LOG(LogOpenAPI, Error, TEXT("OpenAPIUserApi: Endpoint Url is not set, request cannot be performed")); return false; } return true; } void OpenAPIUserApi::HandleResponse(FHttpResponsePtr HttpResponse, bool bSucceeded, Response& InOutResponse) const { InOutResponse.SetHttpResponse(HttpResponse); InOutResponse.SetSuccessful(bSucceeded); if (bSucceeded && HttpResponse.IsValid()) { InOutResponse.SetHttpResponseCode((EHttpResponseCodes::Type)HttpResponse->GetResponseCode()); FString ContentType = HttpResponse->GetContentType(); FString Content; if (ContentType.IsEmpty()) { return; // Nothing to parse } else if (ContentType.StartsWith(TEXT("application/json")) || ContentType.StartsWith("text/json")) { Content = HttpResponse->GetContentAsString(); TSharedPtr JsonValue; auto Reader = TJsonReaderFactory<>::Create(Content); if (FJsonSerializer::Deserialize(Reader, JsonValue) && JsonValue.IsValid()) { if (InOutResponse.FromJson(JsonValue)) return; // Successfully parsed } } else if(ContentType.StartsWith(TEXT("text/plain"))) { Content = HttpResponse->GetContentAsString(); InOutResponse.SetResponseString(Content); return; // Successfully parsed } // Report the parse error but do not mark the request as unsuccessful. Data could be partial or malformed, but the request succeeded. UE_LOG(LogOpenAPI, Error, TEXT("Failed to deserialize Http response content (type:%s):\n%s"), *ContentType , *Content); return; } // By default, assume we failed to establish connection InOutResponse.SetHttpResponseCode(EHttpResponseCodes::RequestTimeout); } bool OpenAPIUserApi::CreateUser(const CreateUserRequest& Request, const FCreateUserDelegate& Delegate /*= FCreateUserDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUserResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnCreateUserResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FCreateUserDelegate Delegate, int AutoRetryCount) const { CreateUserResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUserResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::CreateUsersWithArrayInput(const CreateUsersWithArrayInputRequest& Request, const FCreateUsersWithArrayInputDelegate& Delegate /*= FCreateUsersWithArrayInputDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUsersWithArrayInputResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnCreateUsersWithArrayInputResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FCreateUsersWithArrayInputDelegate Delegate, int AutoRetryCount) const { CreateUsersWithArrayInputResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUsersWithArrayInputResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::CreateUsersWithListInput(const CreateUsersWithListInputRequest& Request, const FCreateUsersWithListInputDelegate& Delegate /*= FCreateUsersWithListInputDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUsersWithListInputResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnCreateUsersWithListInputResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FCreateUsersWithListInputDelegate Delegate, int AutoRetryCount) const { CreateUsersWithListInputResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnCreateUsersWithListInputResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::DeleteUser(const DeleteUserRequest& Request, const FDeleteUserDelegate& Delegate /*= FDeleteUserDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnDeleteUserResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnDeleteUserResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FDeleteUserDelegate Delegate, int AutoRetryCount) const { DeleteUserResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnDeleteUserResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::GetUserByName(const GetUserByNameRequest& Request, const FGetUserByNameDelegate& Delegate /*= FGetUserByNameDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnGetUserByNameResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnGetUserByNameResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FGetUserByNameDelegate Delegate, int AutoRetryCount) const { GetUserByNameResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnGetUserByNameResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::LoginUser(const LoginUserRequest& Request, const FLoginUserDelegate& Delegate /*= FLoginUserDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnLoginUserResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnLoginUserResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FLoginUserDelegate Delegate, int AutoRetryCount) const { LoginUserResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnLoginUserResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::LogoutUser(const LogoutUserRequest& Request, const FLogoutUserDelegate& Delegate /*= FLogoutUserDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnLogoutUserResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnLogoutUserResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FLogoutUserDelegate Delegate, int AutoRetryCount) const { LogoutUserResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnLogoutUserResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } bool OpenAPIUserApi::UpdateUser(const UpdateUserRequest& Request, const FUpdateUserDelegate& Delegate /*= FUpdateUserDelegate()*/) const { if (!IsValid()) return false; FHttpRequestRef HttpRequest = FHttpModule::Get().CreateRequest(); HttpRequest->SetURL(*(Url + Request.ComputePath())); for(const auto& It : AdditionalHeaderParams) { HttpRequest->SetHeader(It.Key, It.Value); } Request.SetupHttpRequest(HttpRequest); HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnUpdateUserResponse, Delegate, Request.GetAutoRetryCount()); return HttpRequest->ProcessRequest(); } void OpenAPIUserApi::OnUpdateUserResponse(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FUpdateUserDelegate Delegate, int AutoRetryCount) const { UpdateUserResponse Response; Response.SetHttpRequest(HttpRequest); HandleResponse(HttpResponse, bSucceeded, Response); if(!Response.IsSuccessful() && AutoRetryCount > 0) { HttpRequest->OnProcessRequestComplete().BindRaw(this, &OpenAPIUserApi::OnUpdateUserResponse, Delegate, AutoRetryCount - 1); Response.AsyncRetry(); } else { Delegate.ExecuteIfBound(Response); } } }