Skip to content

Commit d27007f

Browse files
committed
make options list always from predefined value
1 parent aa9fea2 commit d27007f

File tree

2 files changed

+38
-99
lines changed

2 files changed

+38
-99
lines changed

lib/paper_trail.ex

Lines changed: 23 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,26 @@ defmodule PaperTrail do
1616
defdelegate get_item_type(data), to: Serializer
1717
defdelegate get_model_id(model), to: Serializer
1818

19+
@default_transaction_options [
20+
origin: nil,
21+
meta: nil,
22+
originator: nil,
23+
prefix: nil,
24+
model_key: :model,
25+
version_key: :version,
26+
ecto_options: []
27+
]
28+
1929
@doc """
2030
Inserts a record to the database with a related version insertion in one transaction
2131
"""
22-
@spec insert(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) ::
32+
@spec insert(
33+
changeset :: Ecto.Changeset.t(model),
34+
options :: Keyword.t()
35+
) ::
2336
{:ok, %{model: model, version: Version.t()}} | {:error, Ecto.Changeset.t(model) | term}
2437
when model: struct
25-
def insert(
26-
changeset,
27-
options \\ [
28-
origin: nil,
29-
meta: nil,
30-
originator: nil,
31-
prefix: nil,
32-
model_key: :model,
33-
version_key: :version,
34-
ecto_options: []
35-
]
36-
) do
38+
def insert(changeset, options \\ @default_transaction_options) do
3739
PaperTrail.Multi.new()
3840
|> PaperTrail.Multi.insert(changeset, options)
3941
|> PaperTrail.Multi.commit()
@@ -44,18 +46,7 @@ defmodule PaperTrail do
4446
"""
4547
@spec insert!(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) :: model
4648
when model: struct
47-
def insert!(
48-
changeset,
49-
options \\ [
50-
origin: nil,
51-
meta: nil,
52-
originator: nil,
53-
prefix: nil,
54-
model_key: :model,
55-
version_key: :version,
56-
ecto_options: []
57-
]
58-
) do
49+
def insert!(changeset, options \\ @default_transaction_options) do
5950
changeset
6051
|> insert(options)
6152
|> model_or_error(:insert)
@@ -67,10 +58,7 @@ defmodule PaperTrail do
6758
@spec insert_or_update(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) ::
6859
{:ok, %{model: model, version: Version.t()}} | {:error, Ecto.Changeset.t(model) | term}
6960
when model: struct
70-
def insert_or_update(
71-
changeset,
72-
options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]
73-
) do
61+
def insert_or_update(changeset, options \\ @default_transaction_options) do
7462
PaperTrail.Multi.new()
7563
|> PaperTrail.Multi.insert_or_update(changeset, options)
7664
|> PaperTrail.Multi.commit()
@@ -81,10 +69,7 @@ defmodule PaperTrail do
8169
"""
8270
@spec insert_or_update!(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) :: model
8371
when model: struct
84-
def insert_or_update!(
85-
changeset,
86-
options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]
87-
) do
72+
def insert_or_update!(changeset, options \\ @default_transaction_options) do
8873
changeset
8974
|> insert_or_update(options)
9075
|> model_or_error(:insert_or_update)
@@ -96,7 +81,7 @@ defmodule PaperTrail do
9681
@spec update(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) ::
9782
{:ok, %{model: model, version: Version.t()}} | {:error, Ecto.Changeset.t(model) | term}
9883
when model: struct
99-
def update(changeset, options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]) do
84+
def update(changeset, options \\ @default_transaction_options) do
10085
PaperTrail.Multi.new()
10186
|> PaperTrail.Multi.update(changeset, options)
10287
|> PaperTrail.Multi.commit()
@@ -107,7 +92,7 @@ defmodule PaperTrail do
10792
"""
10893
@spec update!(changeset :: Ecto.Changeset.t(model), options :: Keyword.t()) :: model
10994
when model: struct
110-
def update!(changeset, options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]) do
95+
def update!(changeset, options \\ @default_transaction_options) do
11196
changeset
11297
|> update(options)
11398
|> model_or_error(:update)
@@ -119,10 +104,7 @@ defmodule PaperTrail do
119104
@spec delete(model_or_changeset :: model | Ecto.Changeset.t(model), options :: Keyword.t()) ::
120105
{:ok, %{model: model, version: Version.t()}} | {:error, Ecto.Changeset.t(model) | term}
121106
when model: struct
122-
def delete(
123-
model_or_changeset,
124-
options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]
125-
) do
107+
def delete(model_or_changeset, options \\ @default_transaction_options) do
126108
PaperTrail.Multi.new()
127109
|> PaperTrail.Multi.delete(model_or_changeset, options)
128110
|> PaperTrail.Multi.commit()
@@ -134,10 +116,7 @@ defmodule PaperTrail do
134116
@spec delete!(model_or_changeset :: model | Ecto.Changeset.t(model), options :: Keyword.t()) ::
135117
model
136118
when model: struct
137-
def delete!(
138-
model_or_changeset,
139-
options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]
140-
) do
119+
def delete!(model_or_changeset, options \\ @default_transaction_options) do
141120
model_or_changeset
142121
|> delete(options)
143122
|> model_or_error(:delete)
@@ -156,8 +135,7 @@ defmodule PaperTrail do
156135
@spec model_or_error(
157136
result :: {:error, reason :: term},
158137
action :: :insert | :insert_or_update | :update | :delete
159-
) ::
160-
no_return
138+
) :: no_return
161139
defp model_or_error({:error, %Ecto.Changeset{} = changeset}, action) do
162140
raise Ecto.InvalidChangesetError, action: action, changeset: changeset
163141
end

lib/paper_trail/multi.ex

Lines changed: 15 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,18 @@ defmodule PaperTrail.Multi do
2222
defdelegate get_item_type(data), to: Serializer
2323
defdelegate get_model_id(model), to: Serializer
2424

25-
def insert(
26-
%Ecto.Multi{} = multi,
27-
changeset,
28-
options \\ [
29-
origin: nil,
30-
meta: nil,
31-
originator: nil,
32-
prefix: nil,
33-
model_key: :model,
34-
version_key: :version,
35-
initial_version_key: :initial_version,
36-
ecto_options: []
37-
]
38-
) do
25+
@default_transaction_options [
26+
origin: nil,
27+
meta: nil,
28+
originator: nil,
29+
prefix: nil,
30+
model_key: :model,
31+
version_key: :version,
32+
initial_version_key: :initial_version,
33+
ecto_options: []
34+
]
35+
36+
def insert(%Ecto.Multi{} = multi, changeset, options \\ @default_transaction_options) do
3937
model_key = options[:model_key] || :model
4038
version_key = options[:version_key] || :version
4139
initial_version_key = options[:initial_version_key] || :initial_version
@@ -88,20 +86,7 @@ defmodule PaperTrail.Multi do
8886
end
8987
end
9088

91-
def update(
92-
%Ecto.Multi{} = multi,
93-
changeset,
94-
options \\ [
95-
origin: nil,
96-
meta: nil,
97-
originator: nil,
98-
prefix: nil,
99-
model_key: :model,
100-
version_key: :version,
101-
initial_version_key: :initial_version,
102-
ecto_options: []
103-
]
104-
) do
89+
def update(%Ecto.Multi{} = multi, changeset, options \\ @default_transaction_options) do
10590
model_key = options[:model_key] || :model
10691
version_key = options[:version_key] || :version
10792
initial_version_key = options[:initial_version_key] || :initial_version
@@ -149,19 +134,7 @@ defmodule PaperTrail.Multi do
149134
end
150135
end
151136

152-
def insert_or_update(
153-
%Ecto.Multi{} = multi,
154-
changeset,
155-
options \\ [
156-
origin: nil,
157-
meta: nil,
158-
originator: nil,
159-
prefix: nil,
160-
model_key: :model,
161-
version_key: :version,
162-
ecto_options: []
163-
]
164-
) do
137+
def insert_or_update(%Ecto.Multi{} = multi, changeset, options \\ @default_transaction_options) do
165138
case get_state(changeset) do
166139
:built ->
167140
insert(multi, changeset, options)
@@ -176,19 +149,7 @@ defmodule PaperTrail.Multi do
176149
end
177150
end
178151

179-
def delete(
180-
%Ecto.Multi{} = multi,
181-
struct,
182-
options \\ [
183-
origin: nil,
184-
meta: nil,
185-
originator: nil,
186-
prefix: nil,
187-
model_key: :model,
188-
version_key: :version,
189-
ecto_options: []
190-
]
191-
) do
152+
def delete(%Ecto.Multi{} = multi, struct, options \\ @default_transaction_options) do
192153
model_key = options[:model_key] || :model
193154
version_key = options[:version_key] || :version
194155
ecto_options = options[:ecto_options] || []

0 commit comments

Comments
 (0)