@@ -16,24 +16,26 @@ defmodule PaperTrail do
16
16
defdelegate get_item_type ( data ) , to: Serializer
17
17
defdelegate get_model_id ( model ) , to: Serializer
18
18
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
+
19
29
@ doc """
20
30
Inserts a record to the database with a related version insertion in one transaction
21
31
"""
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
+ ) ::
23
36
{ :ok , % { model: model , version: Version . t ( ) } } | { :error , Ecto.Changeset . t ( model ) | term }
24
37
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
37
39
PaperTrail.Multi . new ( )
38
40
|> PaperTrail.Multi . insert ( changeset , options )
39
41
|> PaperTrail.Multi . commit ( )
@@ -44,18 +46,7 @@ defmodule PaperTrail do
44
46
"""
45
47
@ spec insert! ( changeset :: Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) :: model
46
48
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
59
50
changeset
60
51
|> insert ( options )
61
52
|> model_or_error ( :insert )
@@ -67,10 +58,7 @@ defmodule PaperTrail do
67
58
@ spec insert_or_update ( changeset :: Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) ::
68
59
{ :ok , % { model: model , version: Version . t ( ) } } | { :error , Ecto.Changeset . t ( model ) | term }
69
60
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
74
62
PaperTrail.Multi . new ( )
75
63
|> PaperTrail.Multi . insert_or_update ( changeset , options )
76
64
|> PaperTrail.Multi . commit ( )
@@ -81,10 +69,7 @@ defmodule PaperTrail do
81
69
"""
82
70
@ spec insert_or_update! ( changeset :: Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) :: model
83
71
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
88
73
changeset
89
74
|> insert_or_update ( options )
90
75
|> model_or_error ( :insert_or_update )
@@ -96,7 +81,7 @@ defmodule PaperTrail do
96
81
@ spec update ( changeset :: Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) ::
97
82
{ :ok , % { model: model , version: Version . t ( ) } } | { :error , Ecto.Changeset . t ( model ) | term }
98
83
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
100
85
PaperTrail.Multi . new ( )
101
86
|> PaperTrail.Multi . update ( changeset , options )
102
87
|> PaperTrail.Multi . commit ( )
@@ -107,7 +92,7 @@ defmodule PaperTrail do
107
92
"""
108
93
@ spec update! ( changeset :: Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) :: model
109
94
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
111
96
changeset
112
97
|> update ( options )
113
98
|> model_or_error ( :update )
@@ -119,10 +104,7 @@ defmodule PaperTrail do
119
104
@ spec delete ( model_or_changeset :: model | Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) ::
120
105
{ :ok , % { model: model , version: Version . t ( ) } } | { :error , Ecto.Changeset . t ( model ) | term }
121
106
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
126
108
PaperTrail.Multi . new ( )
127
109
|> PaperTrail.Multi . delete ( model_or_changeset , options )
128
110
|> PaperTrail.Multi . commit ( )
@@ -134,10 +116,7 @@ defmodule PaperTrail do
134
116
@ spec delete! ( model_or_changeset :: model | Ecto.Changeset . t ( model ) , options :: Keyword . t ( ) ) ::
135
117
model
136
118
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
141
120
model_or_changeset
142
121
|> delete ( options )
143
122
|> model_or_error ( :delete )
@@ -156,8 +135,7 @@ defmodule PaperTrail do
156
135
@ spec model_or_error (
157
136
result :: { :error , reason :: term } ,
158
137
action :: :insert | :insert_or_update | :update | :delete
159
- ) ::
160
- no_return
138
+ ) :: no_return
161
139
defp model_or_error ( { :error , % Ecto.Changeset { } = changeset } , action ) do
162
140
raise Ecto.InvalidChangesetError , action: action , changeset: changeset
163
141
end
0 commit comments