Skip to content

Commit 8e21ef1

Browse files
committed
simplify model template
1 parent ca6447e commit 8e21ef1

10 files changed

Lines changed: 18 additions & 20 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -894,6 +894,8 @@ private boolean getRequiresHttpcWorkaround() {
894894

895895
class ExtendedCodegenModel extends CodegenModel {
896896
public boolean hasImports;
897+
public List<CodegenProperty> primitiveVars = new ArrayList<>();
898+
public List<CodegenProperty> complexVars = new ArrayList<>();
897899

898900
public ExtendedCodegenModel(CodegenModel cm) {
899901
super();
@@ -947,6 +949,14 @@ public ExtendedCodegenModel(CodegenModel cm) {
947949
this.additionalPropertiesType = cm.additionalPropertiesType;
948950

949951
this.hasImports = !this.imports.isEmpty();
952+
953+
for (CodegenProperty var : this.vars) {
954+
if (var.isPrimitiveType) {
955+
this.primitiveVars.add(var);
956+
} else {
957+
this.complexVars.add(var);
958+
}
959+
}
950960
}
951961

952962
public boolean hasComplexVars() {

modules/openapi-generator/src/main/resources/elixir/model.mustache

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@
2121
@spec new(map()) :: t()
2222
def new(params) do
2323
%__MODULE__{}
24-
|> Ecto.Changeset.cast(params, [{{#vars}}{{#isPrimitiveType}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}}, {{/-last}}{{/isPrimitiveType}}{{/vars}}])
25-
|> Ecto.Changeset.validate_required([{{#vars}}{{#isPrimitiveType}}{{#required}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}}, {{/-last}}{{/required}}{{/isPrimitiveType}}{{/vars}}])
26-
{{#vars}}{{^isPrimitiveType}}
24+
|> Ecto.Changeset.cast(params, [{{#primitiveVars}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}}, {{/-last}}{{/primitiveVars}}])
25+
|> Ecto.Changeset.validate_required([{{#primitiveVars}}{{#required}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}}, {{/-last}}{{/required}}{{/primitiveVars}}])
26+
{{#complexVars}}
2727
|> Ecto.Changeset.cast_embed({{#atom}}{{&baseName}}{{/atom}}{{#required}}, required: true{{/required}})
28-
{{/isPrimitiveType}}{{/vars}} |> Ecto.Changeset.apply_action!(:insert)
28+
{{/complexVars}}
29+
|> Ecto.Changeset.apply_action!(:insert)
2930
end
3031
end
3132
{{/model}}{{/models}}

samples/client/petstore/elixir/lib/openapi_petstore/model/_foo_get_default_response.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ defmodule OpenapiPetstore.Model.FooGetDefaultResponse do
1818
%__MODULE__{}
1919
|> Ecto.Changeset.cast(params, [])
2020
|> Ecto.Changeset.validate_required([])
21-
2221
|> Ecto.Changeset.cast_embed(:string)
2322
|> Ecto.Changeset.apply_action!(:insert)
2423
end

samples/client/petstore/elixir/lib/openapi_petstore/model/all_of_with_single_ref.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ defmodule OpenapiPetstore.Model.AllOfWithSingleRef do
1717
@spec new(map()) :: t()
1818
def new(params) do
1919
%__MODULE__{}
20-
|> Ecto.Changeset.cast(params, [:username, ])
20+
|> Ecto.Changeset.cast(params, [:username])
2121
|> Ecto.Changeset.validate_required([])
22-
2322
|> Ecto.Changeset.cast_embed(:SingleRefType)
2423
|> Ecto.Changeset.apply_action!(:insert)
2524
end

samples/client/petstore/elixir/lib/openapi_petstore/model/enum_test.ex

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,11 @@ defmodule OpenapiPetstore.Model.EnumTest do
2323
@spec new(map()) :: t()
2424
def new(params) do
2525
%__MODULE__{}
26-
|> Ecto.Changeset.cast(params, [:enum_string, :enum_string_required, :enum_integer, :enum_number, ])
26+
|> Ecto.Changeset.cast(params, [:enum_string, :enum_string_required, :enum_integer, :enum_number])
2727
|> Ecto.Changeset.validate_required([:enum_string_required, ])
28-
2928
|> Ecto.Changeset.cast_embed(:outerEnum)
30-
3129
|> Ecto.Changeset.cast_embed(:outerEnumInteger)
32-
3330
|> Ecto.Changeset.cast_embed(:outerEnumDefaultValue)
34-
3531
|> Ecto.Changeset.cast_embed(:outerEnumIntegerDefaultValue)
3632
|> Ecto.Changeset.apply_action!(:insert)
3733
end

samples/client/petstore/elixir/lib/openapi_petstore/model/file_schema_test_class.ex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ defmodule OpenapiPetstore.Model.FileSchemaTestClass do
1919
%__MODULE__{}
2020
|> Ecto.Changeset.cast(params, [])
2121
|> Ecto.Changeset.validate_required([])
22-
2322
|> Ecto.Changeset.cast_embed(:file)
24-
2523
|> Ecto.Changeset.cast_embed(:files)
2624
|> Ecto.Changeset.apply_action!(:insert)
2725
end

samples/client/petstore/elixir/lib/openapi_petstore/model/mixed_properties_and_additional_properties_class.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ defmodule OpenapiPetstore.Model.MixedPropertiesAndAdditionalPropertiesClass do
1818
@spec new(map()) :: t()
1919
def new(params) do
2020
%__MODULE__{}
21-
|> Ecto.Changeset.cast(params, [:uuid, :dateTime, ])
21+
|> Ecto.Changeset.cast(params, [:uuid, :dateTime])
2222
|> Ecto.Changeset.validate_required([])
23-
2423
|> Ecto.Changeset.cast_embed(:map)
2524
|> Ecto.Changeset.apply_action!(:insert)
2625
end

samples/client/petstore/elixir/lib/openapi_petstore/model/object_with_deprecated_fields.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ defmodule OpenapiPetstore.Model.ObjectWithDeprecatedFields do
2121
%__MODULE__{}
2222
|> Ecto.Changeset.cast(params, [:uuid, :id, :bars])
2323
|> Ecto.Changeset.validate_required([])
24-
2524
|> Ecto.Changeset.cast_embed(:deprecatedRef)
2625
|> Ecto.Changeset.apply_action!(:insert)
2726
end

samples/client/petstore/elixir/lib/openapi_petstore/model/outer_object_with_enum_property.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ defmodule OpenapiPetstore.Model.OuterObjectWithEnumProperty do
1818
%__MODULE__{}
1919
|> Ecto.Changeset.cast(params, [])
2020
|> Ecto.Changeset.validate_required([])
21-
2221
|> Ecto.Changeset.cast_embed(:value, required: true)
2322
|> Ecto.Changeset.apply_action!(:insert)
2423
end

samples/client/petstore/elixir/lib/openapi_petstore/model/pet.ex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ defmodule OpenapiPetstore.Model.Pet do
2323
%__MODULE__{}
2424
|> Ecto.Changeset.cast(params, [:id, :name, :photoUrls, :status])
2525
|> Ecto.Changeset.validate_required([:name, :photoUrls, ])
26-
2726
|> Ecto.Changeset.cast_embed(:category)
28-
2927
|> Ecto.Changeset.cast_embed(:tags)
3028
|> Ecto.Changeset.apply_action!(:insert)
3129
end

0 commit comments

Comments
 (0)