mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2026-03-18 18:49:11 +00:00
[haskell-http-client] resolve oas 2.0 regressions (#198)
* [haskell-http-client] fix codegen issues * ensure datatypeWithEnum is set on codegenParameter when is enum * [haskell-http-client] fix isAlias + arrayModelType missing "datatype" * [haskell-http-client] param.isListContainer is sometimes false for list types * [haskell-http-client] gen MimeNoContent instances automatically * [haskell-http-client] fix example-app and integration tests * [haskell-http-client] update docs
This commit is contained in:
committed by
William Cheng
parent
019b0dca1c
commit
db02cc2ac9
@@ -4115,9 +4115,12 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
codegenParameter._enum = codegenProperty._enum;
|
||||
codegenParameter.allowableValues = codegenProperty.allowableValues;
|
||||
|
||||
if (codegenProperty.items != null && codegenProperty.items.isEnum) {
|
||||
if (codegenProperty.isEnum) {
|
||||
codegenParameter.datatypeWithEnum = codegenProperty.datatypeWithEnum;
|
||||
codegenParameter.enumName = codegenProperty.enumName;
|
||||
}
|
||||
|
||||
if (codegenProperty.items != null && codegenProperty.items.isEnum) {
|
||||
codegenParameter.items = codegenProperty.items;
|
||||
}
|
||||
|
||||
|
||||
@@ -118,6 +118,8 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
|
||||
public HaskellHttpClientCodegen() {
|
||||
super();
|
||||
|
||||
this.prependFormOrBodyParameters = true;
|
||||
|
||||
// override the mapping to keep the original mapping in Haskell
|
||||
specialCharReplacements.put("-", "Dash");
|
||||
specialCharReplacements.put(">", "GreaterThan");
|
||||
@@ -620,6 +622,10 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
|
||||
param.vendorExtensions.put(X_IS_BODY_OR_FORM_PARAM, param.isBodyParam || param.isFormParam);
|
||||
if (!StringUtils.isBlank(param.collectionFormat)) {
|
||||
param.vendorExtensions.put(X_COLLECTION_FORMAT, mapCollectionFormat(param.collectionFormat));
|
||||
} else if (!param.isBodyParam && (param.isListContainer || param.dataType.startsWith("["))) { // param.isListContainer is sometimes false for list types
|
||||
// defaulting due to https://github.com/wing328/openapi-generator/issues/72
|
||||
param.collectionFormat = "csv";
|
||||
param.vendorExtensions.put(X_COLLECTION_FORMAT, mapCollectionFormat(param.collectionFormat));
|
||||
}
|
||||
if (!param.required) {
|
||||
op.vendorExtensions.put(X_HAS_OPTIONAL_PARAMS, true);
|
||||
@@ -734,9 +740,9 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
|
||||
public CodegenModel fromModel(String name, Schema mod, Map<String, Schema> allDefinitions) {
|
||||
CodegenModel model = super.fromModel(name, mod, allDefinitions);
|
||||
|
||||
while (typeNames.contains(model.classname)) {
|
||||
model.classname = generateNextName(model.classname);
|
||||
}
|
||||
// while (typeNames.contains(model.classname)) {
|
||||
// model.classname = generateNextName(model.classname);
|
||||
// }
|
||||
typeNames.add(model.classname);
|
||||
modelTypeNames.add(model.classname);
|
||||
|
||||
@@ -1154,7 +1160,11 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
|
||||
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||
cm.isEnum = genEnums && cm.isEnum;
|
||||
if (cm.isAlias) {
|
||||
cm.vendorExtensions.put(X_DATA_TYPE, cm.dataType);
|
||||
String dataType = cm.dataType;
|
||||
if(dataType == null && cm.isArrayModel) { // isAlias + arrayModelType missing "datatype"
|
||||
dataType = "[" + cm.arrayModelType +"]" ;
|
||||
}
|
||||
cm.vendorExtensions.put(X_DATA_TYPE, dataType);
|
||||
}
|
||||
for (CodegenProperty var : cm.vars) {
|
||||
String datatype = genEnums && !StringUtils.isBlank(var.datatypeWithEnum)
|
||||
|
||||
Reference in New Issue
Block a user