forked from loafle/openapi-generator-original
faster logic to patch parameters (#16102)
This commit is contained in:
parent
598c27ddb0
commit
6299af176d
@ -777,52 +777,59 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
}
|
||||
}
|
||||
|
||||
for (ModelMap modelHashMap : allModels) {
|
||||
CodegenModel codegenModel = modelHashMap.getModel();
|
||||
for (CodegenParameter parameter : operation.allParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.allParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.bodyParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.bodyParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.cookieParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.cookieParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.formParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.formParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.headerParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.headerParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.implicitHeadersParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.implicitHeadersParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.optionalParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.optionalParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.pathParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.pathParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.queryParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.queryParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.notNullableParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.notNullableParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.requiredParams) {
|
||||
patchParameter(parameter, allModels);
|
||||
}
|
||||
for (CodegenParameter parameter : operation.requiredParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
List<CodegenParameter> referenceTypes = operation.allParams.stream().filter(p -> p.vendorExtensions.get("x-is-value-type") == null && !p.isNullable).collect(Collectors.toList());
|
||||
@ -842,6 +849,13 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns the model related to the given parameter */
|
||||
private CodegenModel getModelFromParameter(List<ModelMap> allModels, CodegenParameter parameter) {
|
||||
return parameter.isModel
|
||||
? allModels.stream().map(m -> m.getModel()).filter(m -> m.getClassname().equals(parameter.dataType)).findFirst().orElse(null)
|
||||
: null;
|
||||
}
|
||||
|
||||
/** This is the same as patchVendorExtensionNullableValueType except it uses the deprecated getNullableTypes property */
|
||||
protected void patchVendorExtensionNullableValueTypeLegacy(CodegenParameter parameter) {
|
||||
if (parameter.isNullable && !parameter.isContainer && (this.getNullableTypes().contains(parameter.dataType) || parameter.isEnum)) {
|
||||
@ -849,23 +863,13 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
}
|
||||
}
|
||||
|
||||
private void patchParameter(CodegenParameter parameter, List<ModelMap> allModels) {
|
||||
private void patchParameter(CodegenModel model, CodegenParameter parameter) {
|
||||
patchVendorExtensionNullableValueType(parameter);
|
||||
|
||||
if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get("x-nullable-value-type") != null)) {
|
||||
parameter.vendorExtensions.put("x-nullable-type", true);
|
||||
}
|
||||
|
||||
|
||||
CodegenModel model = null;
|
||||
for (ModelMap modelHashMap : allModels) {
|
||||
CodegenModel codegenModel = modelHashMap.getModel();
|
||||
if (codegenModel.getClassname().equals(parameter.dataType)) {
|
||||
model = codegenModel;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isSupportNullable()) {
|
||||
if (model == null) {
|
||||
parameter.isNullable = true;
|
||||
|
@ -118,7 +118,7 @@ namespace Example
|
||||
Configuration config = new Configuration();
|
||||
config.BasePath = "http://localhost";
|
||||
var apiInstance = new MultipartApi(config);
|
||||
var status = (MultipartMixedStatus) "ALLOWED"; // MultipartMixedStatus |
|
||||
var status = new MultipartMixedStatus(); // MultipartMixedStatus |
|
||||
var file = new System.IO.MemoryStream(System.IO.File.ReadAllBytes("/path/to/file.txt")); // System.IO.Stream | a file
|
||||
var marker = new MultipartMixedRequestMarker(); // MultipartMixedRequestMarker | (optional)
|
||||
var statusArray = new List<MultipartMixedStatus>(); // List<MultipartMixedStatus> | (optional)
|
||||
@ -158,7 +158,7 @@ catch (ApiException e)
|
||||
|
||||
| Name | Type | Description | Notes |
|
||||
|------|------|-------------|-------|
|
||||
| **status** | **MultipartMixedStatus** | | |
|
||||
| **status** | [**MultipartMixedStatus**](MultipartMixedStatus.md) | | |
|
||||
| **file** | **System.IO.Stream****System.IO.Stream** | a file | |
|
||||
| **marker** | [**MultipartMixedRequestMarker**](MultipartMixedRequestMarker.md) | | [optional] |
|
||||
| **statusArray** | [**List<MultipartMixedStatus>**](MultipartMixedStatus.md) | | [optional] |
|
||||
|
@ -480,6 +480,12 @@ namespace Org.OpenAPITools.Api
|
||||
/// <returns>ApiResponse of Object(void)</returns>
|
||||
public Org.OpenAPITools.Client.ApiResponse<Object> MultipartMixedWithHttpInfo(MultipartMixedStatus status, System.IO.Stream file, MultipartMixedRequestMarker marker = default(MultipartMixedRequestMarker), List<MultipartMixedStatus> statusArray = default(List<MultipartMixedStatus>), int operationIndex = 0)
|
||||
{
|
||||
// verify the required parameter 'status' is set
|
||||
if (status == null)
|
||||
{
|
||||
throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling MultipartApi->MultipartMixed");
|
||||
}
|
||||
|
||||
// verify the required parameter 'file' is set
|
||||
if (file == null)
|
||||
{
|
||||
@ -508,7 +514,7 @@ namespace Org.OpenAPITools.Api
|
||||
localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
|
||||
}
|
||||
|
||||
localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.ParameterToString(status)); // form parameter
|
||||
localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.Serialize(status)); // form parameter
|
||||
if (marker != null)
|
||||
{
|
||||
localVarRequestOptions.FormParameters.Add("marker", Org.OpenAPITools.Client.ClientUtils.ParameterToString(marker)); // form parameter
|
||||
@ -566,6 +572,12 @@ namespace Org.OpenAPITools.Api
|
||||
/// <returns>Task of ApiResponse</returns>
|
||||
public async System.Threading.Tasks.Task<Org.OpenAPITools.Client.ApiResponse<Object>> MultipartMixedWithHttpInfoAsync(MultipartMixedStatus status, System.IO.Stream file, MultipartMixedRequestMarker marker = default(MultipartMixedRequestMarker), List<MultipartMixedStatus> statusArray = default(List<MultipartMixedStatus>), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
|
||||
{
|
||||
// verify the required parameter 'status' is set
|
||||
if (status == null)
|
||||
{
|
||||
throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling MultipartApi->MultipartMixed");
|
||||
}
|
||||
|
||||
// verify the required parameter 'file' is set
|
||||
if (file == null)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user