From 745b0cb39bfb8cd0d85d607b56eb1e09dc97517e Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 24 May 2024 00:23:11 +0200 Subject: [PATCH] [FIX] correct API generation --- .../archidata/externalRestApi/TsApiGeneration.java | 14 ++++++++------ .../archidata/externalRestApi/TsGenerateApi.java | 5 ++++- .../archidata/externalRestApi/model/ApiModel.java | 12 +++++++++--- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/org/kar/archidata/externalRestApi/TsApiGeneration.java b/src/org/kar/archidata/externalRestApi/TsApiGeneration.java index 33f4399..d05b76c 100644 --- a/src/org/kar/archidata/externalRestApi/TsApiGeneration.java +++ b/src/org/kar/archidata/externalRestApi/TsApiGeneration.java @@ -348,11 +348,11 @@ public class TsApiGeneration { data.append(", is"); data.append(returnModelNameIfComplex); } else { - final String returnType = generateClassModelsTypescript(interfaceElement.returnTypes, tsGroup, imports, - false); - if (!"void".equals(returnType)) { - data.append(", is"); - data.append(returnType); + final TsClassElement retType = tsGroup.find(interfaceElement.returnTypes.get(0)); + if (retType.tsCheckType != null) { + data.append(", "); + data.append(retType.tsCheckType); + imports.add(interfaceElement.returnTypes.get(0)); } } data.append(");"); @@ -393,7 +393,9 @@ public class TsApiGeneration { if (tsModel.nativeType == DefinedPosition.NATIVE) { continue; } - finalImportList.add("is" + tsModel.tsTypeName); + if (tsModel.tsCheckType != null) { + finalImportList.add(tsModel.tsCheckType); + } } for (final ClassModel model : zodImports) { final TsClassElement tsModel = tsGroup.find(model); diff --git a/src/org/kar/archidata/externalRestApi/TsGenerateApi.java b/src/org/kar/archidata/externalRestApi/TsGenerateApi.java index 01eafce..312848e 100644 --- a/src/org/kar/archidata/externalRestApi/TsGenerateApi.java +++ b/src/org/kar/archidata/externalRestApi/TsGenerateApi.java @@ -17,6 +17,8 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import org.glassfish.jersey.media.multipart.ContentDisposition; +import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import org.kar.archidata.catcher.RestErrorResponse; import org.kar.archidata.externalRestApi.TsClassElement.DefinedPosition; import org.kar.archidata.externalRestApi.model.ApiGroupModel; @@ -128,7 +130,8 @@ public class TsGenerateApi { tsModels.add( new TsClassElement(models, "zod.string()", "string", null, "zod.string()", DefinedPosition.NATIVE)); } - models = api.getCompatibleModels(List.of(InputStream.class)); + models = api.getCompatibleModels( + List.of(InputStream.class, FormDataContentDisposition.class, ContentDisposition.class)); if (models != null) { tsModels.add(new TsClassElement(models, "z.instanceof(File)", "File", null, "z.instanceof(File)", DefinedPosition.NATIVE)); diff --git a/src/org/kar/archidata/externalRestApi/model/ApiModel.java b/src/org/kar/archidata/externalRestApi/model/ApiModel.java index 0e1f564..d81522e 100644 --- a/src/org/kar/archidata/externalRestApi/model/ApiModel.java +++ b/src/org/kar/archidata/externalRestApi/model/ApiModel.java @@ -147,11 +147,17 @@ public class ApiModel { final String queryParam = ApiTool.apiAnnotationGetQueryParam(parameter); final String formDataParam = ApiTool.apiAnnotationGetFormDataParam(parameter); if (queryParam != null) { - this.queries.put(queryParam, parameterModel); + if (!this.queries.containsKey(queryParam)) { + this.queries.put(queryParam, parameterModel); + } } else if (pathParam != null) { - this.parameters.put(pathParam, parameterModel); + if (!this.parameters.containsKey(pathParam)) { + this.parameters.put(pathParam, parameterModel); + } } else if (formDataParam != null) { - this.multiPartParameters.put(formDataParam, parameterModel); + if (!this.multiPartParameters.containsKey(formDataParam)) { + this.multiPartParameters.put(formDataParam, parameterModel); + } } else { this.unnamedElement.addAll(parameterModel); }