diff --git a/modules/openapi-generator/src/main/resources/cpp-ue4/Build.cs.mustache b/modules/openapi-generator/src/main/resources/cpp-ue4/Build.cs.mustache index 9b33c5d3d57..bfbee1158a3 100644 --- a/modules/openapi-generator/src/main/resources/cpp-ue4/Build.cs.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-ue4/Build.cs.mustache @@ -11,7 +11,7 @@ public class {{unrealModuleName}} : ModuleRules new string[] { "Core", - "Http", + "HTTP", "Json", } ); diff --git a/modules/openapi-generator/src/main/resources/cpp-ue4/api-operations-source.mustache b/modules/openapi-generator/src/main/resources/cpp-ue4/api-operations-source.mustache index 4868c236ea1..15ef30e93a5 100644 --- a/modules/openapi-generator/src/main/resources/cpp-ue4/api-operations-source.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-ue4/api-operations-source.mustache @@ -172,11 +172,16 @@ void {{classname}}::{{operationIdCamelCase}}Request::SetupHttpRequest(const FHtt HttpRequest->SetContentAsString(JsonBody); {{/bodyParams.0}} {{^bodyParams.0}} - // Form parameters + {{#formParams.0}} + // Form parameters added to try to generate a json body when no body parameters are specified. FString JsonBody; JsonWriter Writer = TJsonWriterFactory<>::Create(&JsonBody); Writer->WriteObjectStart(); {{#formParams}} + {{#isFile}} + UE_LOG(Log{{unrealModuleName}}, Error, TEXT("Form parameter ({{baseName}}) was ignored, Files are not supported in json body")); + {{/isFile}} + {{^isFile}} {{#required}} Writer->WriteIdentifierPrefix(TEXT("{{baseName}}")); WriteJsonValue(Writer, {{paramName}}); @@ -187,11 +192,13 @@ void {{classname}}::{{operationIdCamelCase}}Request::SetupHttpRequest(const FHtt WriteJsonValue(Writer, {{paramName}}.GetValue()); } {{/required}} + {{/isFile}} {{/formParams}} Writer->WriteObjectEnd(); Writer->Close(); HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json; charset=utf-8")); HttpRequest->SetContentAsString(JsonBody); + {{/formParams.0}} {{/bodyParams.0}} } else if (Consumes.Contains(TEXT("multipart/form-data"))) diff --git a/modules/openapi-generator/src/main/resources/cpp-ue4/helpers-header.mustache b/modules/openapi-generator/src/main/resources/cpp-ue4/helpers-header.mustache index 640db9da815..f2a75bcf9dd 100644 --- a/modules/openapi-generator/src/main/resources/cpp-ue4/helpers-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-ue4/helpers-header.mustache @@ -94,12 +94,18 @@ FString Base64UrlEncode(const T& Value) return Base64String; } -template +template::value, int>::type = 0> inline FStringFormatArg ToStringFormatArg(const T& Value) { return FStringFormatArg(Value); } +template::value, int>::type = 0> +inline FStringFormatArg ToStringFormatArg(const T& EnumModelValue) +{ + return FStringFormatArg(T::EnumToString(EnumModelValue.Value)); +} + inline FStringFormatArg ToStringFormatArg(const FDateTime& Value) { return FStringFormatArg(Value.ToIso8601());