diff --git a/docs/generators/elm.md b/docs/generators/elm.md index 65044602159f..3300598f0fd4 100644 --- a/docs/generators/elm.md +++ b/docs/generators/elm.md @@ -12,6 +12,9 @@ CONFIG OPTIONS for elm elmEnableCustomBasePaths Enable setting the base path for each request (Default: false) + elmEnableCustomHeaders + Enable setting custom headers for each request (Default: false) + elmEnableHttpRequestTrackers Enable adding a tracker to each http request (Default: false) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java index dc9a64f5baac..f1fd24b6d3e5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java @@ -65,6 +65,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { private static final String ELM_VERSION = "elmVersion"; private static final String ELM_PREFIX_CUSTOM_TYPE_VARIANTS = "elmPrefixCustomTypeVariants"; private static final String ELM_ENABLE_CUSTOM_BASE_PATHS = "elmEnableCustomBasePaths"; + private static final String ELM_ENABLE_CUSTOM_HEADERS = "elmEnableCustomHeaders"; private static final String ELM_ENABLE_HTTP_REQUEST_TRACKERS = "elmEnableHttpRequestTrackers"; private static final String ENCODER = "elmEncoder"; private static final String DECODER = "elmDecoder"; @@ -173,6 +174,8 @@ public ElmClientCodegen() { cliOptions.add(elmPrefixCustomTypeVariants); final CliOption elmEnableCustomBasePaths = CliOption.newBoolean(ELM_ENABLE_CUSTOM_BASE_PATHS, "Enable setting the base path for each request"); cliOptions.add(elmEnableCustomBasePaths); + final CliOption elmEnableCustomHeaders = CliOption.newBoolean(ELM_ENABLE_CUSTOM_HEADERS, "Enable setting custom headers for each request"); + cliOptions.add(elmEnableCustomHeaders); final CliOption elmEnableHttpRequestTrackers = CliOption.newBoolean(ELM_ENABLE_HTTP_REQUEST_TRACKERS, "Enable adding a tracker to each http request"); cliOptions.add(elmEnableHttpRequestTrackers); } @@ -199,6 +202,11 @@ public void processOpts() { additionalProperties.put("enableCustomBasePaths", enable); } + if (additionalProperties.containsKey(ELM_ENABLE_CUSTOM_HEADERS)) { + final boolean enable = Boolean.TRUE.equals(Boolean.valueOf(additionalProperties.get(ELM_ENABLE_CUSTOM_HEADERS).toString())); + additionalProperties.put("enableCustomHeaders", enable); + } + if (additionalProperties.containsKey(ELM_ENABLE_HTTP_REQUEST_TRACKERS)) { final boolean enable = Boolean.TRUE.equals(Boolean.valueOf(additionalProperties.get(ELM_ENABLE_HTTP_REQUEST_TRACKERS).toString())); additionalProperties.put("enableHttpRequestTrackers", enable); diff --git a/modules/openapi-generator/src/main/resources/elm/api.mustache b/modules/openapi-generator/src/main/resources/elm/api.mustache index 67e40a0d49ac..a5567482cf44 100644 --- a/modules/openapi-generator/src/main/resources/elm/api.mustache +++ b/modules/openapi-generator/src/main/resources/elm/api.mustache @@ -23,6 +23,7 @@ basePath = {{operationId}} : { onSend : Result Http.Error {{^responses}}(){{/responses}}{{#responses}}{{#-first}}{{^dataType}}(){{/dataType}}{{#isMapContainer}}(Dict.Dict String {{/isMapContainer}}{{#isListContainer}}(List {{/isListContainer}}{{dataType}}{{#isListContainer}}){{/isListContainer}}{{#isMapContainer}}){{/isMapContainer}}{{/-first}}{{/responses}} -> msg {{#enableCustomBasePaths}} , basePath : String{{/enableCustomBasePaths}} +{{#enableCustomHeaders}} , headers : List Http.Header{{/enableCustomHeaders}} {{#enableHttpRequestTrackers}} , tracker : Maybe String{{/enableHttpRequestTrackers}} {{#bodyParam}} , body : {{^required}}Maybe {{/required}}{{dataType}}{{/bodyParam}} {{#pathParams}} , {{paramName}} : {{#isListContainer}}List {{/isListContainer}}{{dataType}}{{/pathParams}} @@ -32,7 +33,7 @@ basePath = {{operationId}} params = Http.request { method = "{{httpMethod}}" - , headers = [] + , headers = {{#enableCustomHeaders}}params.headers{{/enableCustomHeaders}}{{^enableCustomHeaders}}[]{{/enableCustomHeaders}} , url = Url.crossOrigin {{#enableCustomBasePaths}}params.{{/enableCustomBasePaths}}basePath [{{{path}}}] (List.filterMap identity [{{{vendorExtensions.query}}}])