forked from loafle/openapi-generator-original
[cpp-ue4] Series of fixes for cpp-ue4 (#15068)
* [cpp-ue4] Removed warning related to wrong casing of HTTP module * [cpp-ue4] Fixed compilation error when using file parameters in json body generation * [cpp-ue4] Do not write the form param json body generation unless there actually are form params * [cpp-ue4] Added support for enum values in path params
This commit is contained in:
parent
938c72cec0
commit
033b946856
@ -11,7 +11,7 @@ public class {{unrealModuleName}} : ModuleRules
|
|||||||
new string[]
|
new string[]
|
||||||
{
|
{
|
||||||
"Core",
|
"Core",
|
||||||
"Http",
|
"HTTP",
|
||||||
"Json",
|
"Json",
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -172,11 +172,16 @@ void {{classname}}::{{operationIdCamelCase}}Request::SetupHttpRequest(const FHtt
|
|||||||
HttpRequest->SetContentAsString(JsonBody);
|
HttpRequest->SetContentAsString(JsonBody);
|
||||||
{{/bodyParams.0}}
|
{{/bodyParams.0}}
|
||||||
{{^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;
|
FString JsonBody;
|
||||||
JsonWriter Writer = TJsonWriterFactory<>::Create(&JsonBody);
|
JsonWriter Writer = TJsonWriterFactory<>::Create(&JsonBody);
|
||||||
Writer->WriteObjectStart();
|
Writer->WriteObjectStart();
|
||||||
{{#formParams}}
|
{{#formParams}}
|
||||||
|
{{#isFile}}
|
||||||
|
UE_LOG(Log{{unrealModuleName}}, Error, TEXT("Form parameter ({{baseName}}) was ignored, Files are not supported in json body"));
|
||||||
|
{{/isFile}}
|
||||||
|
{{^isFile}}
|
||||||
{{#required}}
|
{{#required}}
|
||||||
Writer->WriteIdentifierPrefix(TEXT("{{baseName}}"));
|
Writer->WriteIdentifierPrefix(TEXT("{{baseName}}"));
|
||||||
WriteJsonValue(Writer, {{paramName}});
|
WriteJsonValue(Writer, {{paramName}});
|
||||||
@ -187,11 +192,13 @@ void {{classname}}::{{operationIdCamelCase}}Request::SetupHttpRequest(const FHtt
|
|||||||
WriteJsonValue(Writer, {{paramName}}.GetValue());
|
WriteJsonValue(Writer, {{paramName}}.GetValue());
|
||||||
}
|
}
|
||||||
{{/required}}
|
{{/required}}
|
||||||
|
{{/isFile}}
|
||||||
{{/formParams}}
|
{{/formParams}}
|
||||||
Writer->WriteObjectEnd();
|
Writer->WriteObjectEnd();
|
||||||
Writer->Close();
|
Writer->Close();
|
||||||
HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json; charset=utf-8"));
|
HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json; charset=utf-8"));
|
||||||
HttpRequest->SetContentAsString(JsonBody);
|
HttpRequest->SetContentAsString(JsonBody);
|
||||||
|
{{/formParams.0}}
|
||||||
{{/bodyParams.0}}
|
{{/bodyParams.0}}
|
||||||
}
|
}
|
||||||
else if (Consumes.Contains(TEXT("multipart/form-data")))
|
else if (Consumes.Contains(TEXT("multipart/form-data")))
|
||||||
|
@ -94,12 +94,18 @@ FString Base64UrlEncode(const T& Value)
|
|||||||
return Base64String;
|
return Base64String;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T, typename std::enable_if<!std::is_base_of<Model, T>::value, int>::type = 0>
|
||||||
inline FStringFormatArg ToStringFormatArg(const T& Value)
|
inline FStringFormatArg ToStringFormatArg(const T& Value)
|
||||||
{
|
{
|
||||||
return FStringFormatArg(Value);
|
return FStringFormatArg(Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T, typename std::enable_if<std::is_base_of<Model, T>::value, int>::type = 0>
|
||||||
|
inline FStringFormatArg ToStringFormatArg(const T& EnumModelValue)
|
||||||
|
{
|
||||||
|
return FStringFormatArg(T::EnumToString(EnumModelValue.Value));
|
||||||
|
}
|
||||||
|
|
||||||
inline FStringFormatArg ToStringFormatArg(const FDateTime& Value)
|
inline FStringFormatArg ToStringFormatArg(const FDateTime& Value)
|
||||||
{
|
{
|
||||||
return FStringFormatArg(Value.ToIso8601());
|
return FStringFormatArg(Value.ToIso8601());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user