Skip to content

Commit

Permalink
302 Fix reactive flow (#307)
Browse files Browse the repository at this point in the history
* 302 Fix reactive flow

* 299 async api string with format date or datetime (#305)

* 299-adding data and date-time with format

* 299-update versions

* 299 - adding format properties and format annotation at arrays

* 299 - fix intend

* 299 - format. remove leading space

* 299 - reduce parameter

* recheck spaces

* 299 - change documentation

* 299 - simplify functions

* remove unused imports

* 299 - date type configurable, change version

---------

Co-authored-by: nbis Klaus Bertram <dev@n-bis-de>

* 302 Fix reactive flow

* 299 async api string with format date or datetime (#305)

* 299-adding data and date-time with format

* 299-update versions

* 299 - adding format properties and format annotation at arrays

* 299 - fix intend

* 299 - format. remove leading space

* 299 - reduce parameter

* recheck spaces

* 299 - change documentation

* 299 - simplify functions

* remove unused imports

* 299 - date type configurable, change version

---------

Co-authored-by: nbis Klaus Bertram <dev@n-bis-de>

* 298 asyncapi interpreting of property const not possible (#306)

* 299 async api string with format date or datetime (#305)

* 299-adding data and date-time with format

* 299-update versions

* 299 - adding format properties and format annotation at arrays

* 299 - fix intend

* 299 - format. remove leading space

* 299 - reduce parameter

* recheck spaces

* 299 - change documentation

* 299 - simplify functions

* remove unused imports

* 299 - date type configurable, change version

---------

Co-authored-by: nbis Klaus Bertram <dev@n-bis-de>

* 302 Fix reactive flow

* 302 Fix reactive flow

---------

Co-authored-by: Bertram <dev@n-bis.de>
Co-authored-by: nbis Klaus Bertram <dev@n-bis-de>
Co-authored-by: Jose Enrique Garcia Maciñeiras <jegarcia@local.corunet.com>
  • Loading branch information
4 people authored Jan 17, 2024
1 parent 6359a71 commit 83ae1b0
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 31 deletions.
2 changes: 1 addition & 1 deletion multiapi-engine/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.8.5</version>
<version>3.9.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* * License, v. 2.0. If a copy of the MPL was not distributed with this
* * file, You can obtain one at https://mozilla.org/MPL/2.0/.
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/

package com.sngular.api.generator.plugin.asyncapi.util;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,19 +237,23 @@ public class ${className?cap_first}Api {
${content.dataType}
${content.dataType?api.getVariableNameString()} <#if content?has_next>, </#if></#list>
</#list></#if></@compress>) throws WebClientResponseException {
<#if operation.responseObjects[0].contentObjects[0]??>
ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}> localVarReturnType = new ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}>() {};
<#if operation.responseObjects[0].contentObjects[0]??>
<#if operation.responseObjects[0].contentObjects[0].dataType.baseType == "array" || operation.responseObjects[0].contentObjects[0].dataType.baseType == "map">
ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType.innerType}> localVarReturnType = new ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType.innerType}>() {};
<#else>
ParameterizedTypeReference<Void> localVarReturnType = new ParameterizedTypeReference<Void>() {};
ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}> localVarReturnType = new ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}>() {};
</#if>
<#else>
ParameterizedTypeReference<Void> localVarReturnType = new ParameterizedTypeReference<Void>() {};
</#if>
return ${operation.operationId}RequestCreation(<@compress single_line=true>
<#if operation.parameterObjects?has_content><#list operation.parameterObjects as parameter> ${parameter.name}<#if parameter?has_next || operation.requestObjects?has_content>,</#if></#list></#if><#if path.parameterObjects?has_content><#list path.parameterObjects as parameter> ${parameter.name}<#if parameter?has_next || operation.requestObjects?has_content>,</#if></#list> </#if>
<#if operation.requestObjects?has_content>
<#list operation.requestObjects as request><#list request.contentObjects as content> ${content.dataType?api.getVariableNameString()} <#if content?has_next>, </#if></#list></#list></#if>
</@compress>).<#if operation.responseObjects[0].contentObjects[0].dataType.baseType == "array" || operation.responseObjects[0].contentObjects[0].dataType.baseType == "map">bodyToFlux<#else>bodyToMono</#if>(localVarReturnType);
}

public <@compress single_line=true><#if operation.responseObjects[0].contentObjects[0]??> Mono<ResponseEntity<${operation.responseObjects[0].contentObjects[0].dataType}>>
public <@compress single_line=true><#if operation.responseObjects[0].contentObjects[0]??> <#if operation.responseObjects[0].contentObjects[0].dataType.baseType == "array" || operation.responseObjects[0].contentObjects[0].dataType.baseType == "map"> Flux<ResponseEntity<${operation.responseObjects[0].contentObjects[0].dataType.innerType}>> <#else> Mono<ResponseEntity<${operation.responseObjects[0].contentObjects[0].dataType}>></#if>
<#else> ResponseEntity<Void>></#if></@compress> ${operation.operationId}WithHttpInfo(<@compress single_line=true>
<#if operation.parameterObjects?has_content><#list operation.parameterObjects as parameter> ${parameter.dataType} ${parameter.name}<#if parameter?has_next || operation.requestObjects?has_content>, </#if></#list></#if><#if path.parameterObjects?has_content><#list path.parameterObjects as parameter> ${parameter.dataType} ${parameter.name}<#if parameter?has_next || operation.requestObjects?has_content>, </#if></#list></#if>
<#if operation.requestObjects?has_content>
Expand All @@ -259,7 +263,11 @@ public class ${className?cap_first}Api {
${content.dataType?api.getVariableNameString()} <#if content?has_next>, </#if></#list>
</#list></#if></@compress>) throws WebClientResponseException {
<#if operation.responseObjects[0].contentObjects[0]??>
<#if operation.responseObjects[0].contentObjects[0].dataType.baseType == "array" || operation.responseObjects[0].contentObjects[0].dataType.baseType == "map">
ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType.innerType}> localVarReturnType = new ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType.innerType}>() {};
<#else>
ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}> localVarReturnType = new ParameterizedTypeReference<${operation.responseObjects[0].contentObjects[0].dataType}>() {};
</#if>
<#else>
ParameterizedTypeReference<Void> localVarReturnType = new ParameterizedTypeReference<Void>() {};
</#if>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public class ApiRestClient {
}

private static void createDefaultObjectMapper(final DateFormat defaultDateFormat, final AbstractJackson2HttpMessageConverter converter) {
final DateFormat dateFormat = defaultDateFormat;
DateFormat dateFormat = defaultDateFormat;
if (Objects.isNull(defaultDateFormat)) {
dateFormat = createDefaultDateFormat();
}
Expand Down Expand Up @@ -198,13 +198,13 @@ public class ApiRestClient {

public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFormat collectionFormat, final String name, final Object value) {
final MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();

CollectionFormat colFormat = collectionFormat;
if (name == null || name.isEmpty() || value == null) {
return params;
}

if (collectionFormat == null) {
collectionFormat = CollectionFormat.CSV;
if (colFormat == null) {
colFormat = CollectionFormat.CSV;
}

if (value instanceof Map) {
Expand All @@ -228,7 +228,7 @@ public class ApiRestClient {
return params;
}

if (collectionFormat.equals(CollectionFormat.MULTI)) {
if (colFormat.equals(CollectionFormat.MULTI)) {
for (Object item : valueCollection) {
params.add(name, parameterToString(item));
}
Expand All @@ -239,7 +239,7 @@ public class ApiRestClient {
for (Object o : valueCollection) {
values.add(parameterToString(o));
}
params.add(name, collectionFormat.collectionToString(values));
params.add(name, colFormat.collectionToString(values));

return params;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public Date parse(final String source, final ParsePosition pos) {
}

private static void createDefaultObjectMapper(final DateFormat defaultDateFormat, final AbstractJackson2HttpMessageConverter converter) {
final DateFormat dateFormat = defaultDateFormat;
DateFormat dateFormat = defaultDateFormat;
if (Objects.isNull(defaultDateFormat)) {
dateFormat = createDefaultDateFormat();
}
Expand Down Expand Up @@ -198,13 +198,13 @@ public String collectionPathParameterToString(final CollectionFormat collectionF

public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFormat collectionFormat, final String name, final Object value) {
final MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();

CollectionFormat colFormat = collectionFormat;
if (name == null || name.isEmpty() || value == null) {
return params;
}

if (collectionFormat == null) {
collectionFormat = CollectionFormat.CSV;
if (colFormat == null) {
colFormat = CollectionFormat.CSV;
}

if (value instanceof Map) {
Expand All @@ -228,7 +228,7 @@ public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFo
return params;
}

if (collectionFormat.equals(CollectionFormat.MULTI)) {
if (colFormat.equals(CollectionFormat.MULTI)) {
for (Object item : valueCollection) {
params.add(name, parameterToString(item));
}
Expand All @@ -239,7 +239,7 @@ public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFo
for (Object o : valueCollection) {
values.add(parameterToString(o));
}
params.add(name, collectionFormat.collectionToString(values));
params.add(name, colFormat.collectionToString(values));

return params;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public Date parse(final String source, final ParsePosition pos) {
}

private static void createDefaultObjectMapper(final DateFormat defaultDateFormat, final AbstractJackson2HttpMessageConverter converter) {
final DateFormat dateFormat = defaultDateFormat;
DateFormat dateFormat = defaultDateFormat;
if (Objects.isNull(defaultDateFormat)) {
dateFormat = createDefaultDateFormat();
}
Expand Down Expand Up @@ -198,13 +198,13 @@ public String collectionPathParameterToString(final CollectionFormat collectionF

public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFormat collectionFormat, final String name, final Object value) {
final MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();

CollectionFormat colFormat = collectionFormat;
if (name == null || name.isEmpty() || value == null) {
return params;
}

if (collectionFormat == null) {
collectionFormat = CollectionFormat.CSV;
if (colFormat == null) {
colFormat = CollectionFormat.CSV;
}

if (value instanceof Map) {
Expand All @@ -228,7 +228,7 @@ public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFo
return params;
}

if (collectionFormat.equals(CollectionFormat.MULTI)) {
if (colFormat.equals(CollectionFormat.MULTI)) {
for (Object item : valueCollection) {
params.add(name, parameterToString(item));
}
Expand All @@ -239,7 +239,7 @@ public MultiValueMap<String, String> parameterToMultiValueMap(final CollectionFo
for (Object o : valueCollection) {
values.add(parameterToString(o));
}
params.add(name, collectionFormat.collectionToString(values));
params.add(name, colFormat.collectionToString(values));

return params;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ paths:
content:
application/json:
schema:
$ref: "#/components/schemas/Test"
type: array
items:
$ref: "#/components/schemas/Test"
default:
description: unexpected error
content:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private ResponseSpec listTestRequestCreation() throws WebClientResponseException

String[] localVarAuthNames = new String[] {"BasicAuth"};

ParameterizedTypeReference<ApiTestDTO> localVarReturnType = new ParameterizedTypeReference<ApiTestDTO>() {};
ParameterizedTypeReference<List<ApiTestDTO>> localVarReturnType = new ParameterizedTypeReference<List<ApiTestDTO>>() {};
return apiWebClient.invokeAPI("http://localhost:8080/v1","/test", HttpMethod.GET, pathParams, queryParams, postBody, headerParams, cookieParams, formParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);

}
Expand All @@ -72,14 +72,14 @@ private ResponseSpec listTestRequestCreation() throws WebClientResponseException
* @return A paged array of tests; (status code 200)
* @throws WebClientResponseException if an error occurs while attempting to invoke the API
*/
public Mono<ApiTestDTO> listTest() throws WebClientResponseException {
public Flux<ApiTestDTO> listTest() throws WebClientResponseException {
ParameterizedTypeReference<ApiTestDTO> localVarReturnType = new ParameterizedTypeReference<ApiTestDTO>() {};
return listTestRequestCreation().bodyToMono(localVarReturnType);
return listTestRequestCreation().bodyToFlux(localVarReturnType);
}

public Mono<ResponseEntity<ApiTestDTO>> listTestWithHttpInfo() throws WebClientResponseException {
public Flux<ResponseEntity<ApiTestDTO>> listTestWithHttpInfo() throws WebClientResponseException {
ParameterizedTypeReference<ApiTestDTO> localVarReturnType = new ParameterizedTypeReference<ApiTestDTO>() {};
return listTestRequestCreation().toEntity(localVarReturnType);
return listTestRequestCreation().toEntityList(localVarReturnType);
}

/**
Expand Down

0 comments on commit 83ae1b0

Please sign in to comment.