Skip to content

Commit f8684dc

Browse files
committed
feat: from_params/1 function
1 parent 231bd3d commit f8684dc

6 files changed

Lines changed: 15 additions & 15 deletions

File tree

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@
2121
{{/ectoEmbeds}}
2222
end
2323

24+
@spec from_params(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
25+
def from_params(params) do
26+
%__MODULE__{}
27+
|> changeset(params)
28+
|> Ecto.Changeset.apply_action(:insert)
29+
end
30+
2431
@spec changeset(t(), map()) :: Ecto.Changeset.t()
2532
def changeset(%__MODULE__{} = struct, params) do
2633
struct

samples/client/petstore/elixir/test/any_test.exs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ defmodule AnyTest do
66
assert %{
77
"@type": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
88
}
9-
|> then(fn params -> Model.changeset(%Model{}, params) end)
10-
|> Ecto.Changeset.apply_action!(:insert) ==
9+
|> Model.from_params
1110
%Model{
1211
"@type": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
1312
}

samples/client/petstore/elixir/test/deserializer_test.exs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ defmodule DeserializerTest do
3131
test "can deserialize valid JSON" do
3232
pet =
3333
JSON.decode!(@valid_json)
34-
|> then(fn params -> Pet.changeset(%Pet{}, params) end)
35-
|> Ecto.Changeset.apply_action!(:insert)
34+
|> Pet.from_params
3635

3736
assert pet ==
3837
%Pet{

samples/client/petstore/elixir/test/format_test.exs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ defmodule FormatTest do
2121
pattern_with_digits: "1234567890",
2222
pattern_with_digits_and_delimiter: "Image_01"
2323
}
24-
|> then(fn params -> FormatTest.changeset(%FormatTest{}, params) end)
25-
|> Ecto.Changeset.apply_action!(:insert) ==
24+
|> FormatTest.from_params
2625
%FormatTest{
2726
integer: 1,
2827
int32: 2,
@@ -62,8 +61,7 @@ defmodule FormatTest do
6261
pattern_with_digits: nil,
6362
pattern_with_digits_and_delimiter: nil
6463
}
65-
|> then(fn params -> FormatTest.changeset(%FormatTest{}, params) end)
66-
|> Ecto.Changeset.apply_action!(:insert) ==
64+
|> FormatTest.from_params
6765
%FormatTest{
6866
integer: nil,
6967
int32: nil,

samples/client/petstore/elixir/test/mixed_properties_and_additional_properties_class_test.exs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ defmodule MixedPropertiesAndAdditionalPropertiesClass do
1212
"meow" => %{"className" => "CAT", "color" => "white", "declawed" => false}
1313
}
1414
}
15-
|> then(fn params -> Model.changeset(%Model{}, params) end)
16-
|> Ecto.Changeset.apply_action!(:insert) ==
15+
|> Model.from_params
1716
%Model{
1817
uuid: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
1918
dateTime: ~U[2013-10-20 18:20:30Z],
@@ -36,9 +35,8 @@ defmodule MixedPropertiesAndAdditionalPropertiesClass do
3635
uuid: nil,
3736
dateTime: nil,
3837
map: nil
39-
}
40-
|> then(fn params -> Model.changeset(%Model{}, params) end)
41-
|> Ecto.Changeset.apply_action!(:insert) ==
38+
}
39+
|> Mode.from_params
4240
%Model{
4341
uuid: nil,
4442
dateTime: nil,

samples/client/petstore/elixir/test/outer_enum_test.exs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ defmodule OuterEnumTest do
1717
test "json_decode/2 with valid JSON" do
1818
enum_test =
1919
JSON.decode!(@valid_json)
20-
|> then(fn params -> EnumTest.changeset(%EnumTest{}, params) end)
21-
|> Ecto.Changeset.apply_action!(:insert)
20+
|> EnumTest.from_params
2221

2322
assert enum_test ==
2423
%EnumTest{

0 commit comments

Comments
 (0)