[FIX] correct API generation

This commit is contained in:
Edouard DUPIN 2024-05-24 00:23:11 +02:00
parent 9bad883866
commit 745b0cb39b
3 changed files with 21 additions and 10 deletions

View File

@ -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);

View File

@ -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));

View File

@ -147,11 +147,17 @@ public class ApiModel {
final String queryParam = ApiTool.apiAnnotationGetQueryParam(parameter);
final String formDataParam = ApiTool.apiAnnotationGetFormDataParam(parameter);
if (queryParam != null) {
if (!this.queries.containsKey(queryParam)) {
this.queries.put(queryParam, parameterModel);
}
} else if (pathParam != null) {
if (!this.parameters.containsKey(pathParam)) {
this.parameters.put(pathParam, parameterModel);
}
} else if (formDataParam != null) {
if (!this.multiPartParameters.containsKey(formDataParam)) {
this.multiPartParameters.put(formDataParam, parameterModel);
}
} else {
this.unnamedElement.addAll(parameterModel);
}