Skip to content

Commit dd4bc33

Browse files
committed
use vanilla ecto
1 parent a7259de commit dd4bc33

54 files changed

Lines changed: 420 additions & 119 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public class ElixirClientCodegen extends DefaultCodegen {
6060
String supportedElixirVersion = "1.18";
6161
List<String> extraApplications = Arrays.asList(":logger");
6262
List<String> deps = Arrays.asList(
63+
"{:ecto, \"~> 3.12\"}",
6364
"{:tesla, \"~> 1.14\"}",
6465
"{:ex_doc, \"~> 0.37.3\", only: :dev, runtime: false}",
6566
"{:dialyxir, \"~> 1.4\", only: [:dev, :test], runtime: false}");

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,22 @@
33
@moduledoc """
44
{{&description}}
55
"""
6-
use TypedEctoSchema
6+
use Ecto.Schema
7+
8+
@type t :: %__MODULE__{
9+
{{#vars}}{{#atom}}{{&baseName}}{{/atom}} => {{{datatype}}}{{#isNullable}} | nil{{/isNullable}}{{^isNullable}}{{^required}} | nil{{/required}}{{/isNullable}}{{^-last}},
10+
{{/-last}}{{/vars}}
11+
}
712

813
@derive {JSON.Encoder, only: [{{#vars}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}}, {{/-last}}{{/vars}}]}
914
@primary_key false
10-
typed_embedded_schema do
15+
embedded_schema do
1116
{{#vars}}
1217
{{#isPrimitiveType}}
13-
field {{#atom}}{{&baseName}}{{/atom}}, {{{ectoType}}}{{#required}}, null: false{{/required}}
18+
field {{#atom}}{{&baseName}}{{/atom}}, {{{ectoType}}}
1419
{{/isPrimitiveType}}
1520
{{^isPrimitiveType}}
16-
{{^isArray}}embeds_one{{/isArray}}{{#isArray}}embeds_many{{/isArray}} {{#atom}}{{&baseName}}{{/atom}}, {{&moduleName}}.Model.{{^isArray}}{{{baseType}}}{{/isArray}}{{#isArray}}{{{items.baseType}}}{{/isArray}}{{#isNullable}}, null: true{{/isNullable}}
21+
{{^isArray}}embeds_one{{/isArray}}{{#isArray}}embeds_many{{/isArray}} {{#atom}}{{&baseName}}{{/atom}}, {{&moduleName}}.Model.{{^isArray}}{{{baseType}}}{{/isArray}}{{#isArray}}{{{items.baseType}}}{{/isArray}}
1722
{{/isPrimitiveType}}
1823
{{/vars}}
1924
end

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ defmodule OpenapiPetstore.Model.FooGetDefaultResponse do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:string => OpenapiPetstore.Model.Foo.t | nil
12+
}
913

1014
@derive {JSON.Encoder, only: [:string]}
1115
@primary_key false
12-
typed_embedded_schema do
16+
embedded_schema do
1317
embeds_one :string, OpenapiPetstore.Model.Foo
1418
end
1519

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ defmodule OpenapiPetstore.Model.SpecialModelName do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:"$special[property.name]" => integer() | nil
12+
}
913

1014
@derive {JSON.Encoder, only: [:"$special[property.name]"]}
1115
@primary_key false
12-
typed_embedded_schema do
16+
embedded_schema do
1317
field :"$special[property.name]", :integer
1418
end
1519

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ defmodule OpenapiPetstore.Model.AdditionalPropertiesClass do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:map_property => %{optional(String.t) => String.t} | nil,
12+
:map_of_map_property => %{optional(String.t) => %{optional(String.t) => String.t}} | nil
13+
}
914

1015
@derive {JSON.Encoder, only: [:map_property, :map_of_map_property]}
1116
@primary_key false
12-
typed_embedded_schema do
17+
embedded_schema do
1318
field :map_property, :map
1419
field :map_of_map_property, :map
1520
end

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ defmodule OpenapiPetstore.Model.AllOfWithSingleRef do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:username => String.t | nil,
12+
:SingleRefType => OpenapiPetstore.Model.SingleRefType.t | nil
13+
}
914

1015
@derive {JSON.Encoder, only: [:username, :SingleRefType]}
1116
@primary_key false
12-
typed_embedded_schema do
17+
embedded_schema do
1318
field :username, :string
1419
embeds_one :SingleRefType, OpenapiPetstore.Model.SingleRefType
1520
end

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@ defmodule OpenapiPetstore.Model.Animal do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:className => String.t,
12+
:color => String.t | nil
13+
}
914

1015
@derive {JSON.Encoder, only: [:className, :color]}
1116
@primary_key false
12-
typed_embedded_schema do
13-
field :className, :string, null: false
17+
embedded_schema do
18+
field :className, :string
1419
field :color, :string
1520
end
1621

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ defmodule OpenapiPetstore.Model.Any do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:"@type" => String.t | nil
12+
}
913

1014
@derive {JSON.Encoder, only: [:"@type"]}
1115
@primary_key false
12-
typed_embedded_schema do
16+
embedded_schema do
1317
field :"@type", :string
1418
end
1519

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ defmodule OpenapiPetstore.Model.ApiResponse do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:code => integer() | nil,
12+
:type => String.t | nil,
13+
:message => String.t | nil
14+
}
915

1016
@derive {JSON.Encoder, only: [:code, :type, :message]}
1117
@primary_key false
12-
typed_embedded_schema do
18+
embedded_schema do
1319
field :code, :integer
1420
field :type, :string
1521
field :message, :string

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ defmodule OpenapiPetstore.Model.ArrayOfArrayOfNumberOnly do
55
@moduledoc """
66
77
"""
8-
use TypedEctoSchema
8+
use Ecto.Schema
9+
10+
@type t :: %__MODULE__{
11+
:ArrayArrayNumber => [[number()]] | nil
12+
}
913

1014
@derive {JSON.Encoder, only: [:ArrayArrayNumber]}
1115
@primary_key false
12-
typed_embedded_schema do
16+
embedded_schema do
1317
field :ArrayArrayNumber, {:array, {:array, :float}}
1418
end
1519

0 commit comments

Comments
 (0)