11defmodule ExAudit.Tracking do
2- def find_changes ( action , struct_or_changeset , resulting_struct ) do
2+ def find_changes ( module , action , struct_or_changeset , resulting_struct ) do
33 old =
44 case { action , struct_or_changeset } do
55 { :created , _ } -> % { }
@@ -17,13 +17,13 @@ defmodule ExAudit.Tracking do
1717 % { }
1818 end
1919
20- compare_versions ( action , old , new )
20+ compare_versions ( module , action , old , new )
2121 end
2222
23- def compare_versions ( action , old , new ) do
23+ def compare_versions ( module , action , old , new ) do
2424 schema = Map . get ( old , :__struct__ , Map . get ( new , :__struct__ ) )
2525
26- if schema in tracked_schemas ( ) do
26+ if schema in tracked_schemas ( module ) do
2727 assocs = schema . __schema__ ( :associations )
2828
2929 patch =
@@ -53,7 +53,7 @@ defmodule ExAudit.Tracking do
5353
5454 def track_change ( module , action , changeset , resulting_struct , opts ) do
5555 if not Keyword . get ( opts , :ignore_audit , false ) do
56- changes = find_changes ( action , changeset , resulting_struct )
56+ changes = find_changes ( module , action , changeset , resulting_struct )
5757
5858 insert_versions ( module , changes , opts )
5959 end
@@ -85,7 +85,7 @@ defmodule ExAudit.Tracking do
8585
8686 _ ->
8787 opts = Keyword . drop ( opts , [ :on_conflict , :conflict_target ] )
88- module . insert_all ( version_schema ( ) , changes , opts )
88+ module . insert_all ( version_schema ( module ) , changes , opts )
8989 end
9090 end
9191
@@ -109,7 +109,7 @@ defmodule ExAudit.Tracking do
109109 root ++ Enum . map ( root , & find_assoc_deletion ( module , & 1 , repo_opts ) )
110110 end )
111111 |> List . flatten ( )
112- |> Enum . flat_map ( & compare_versions ( :deleted , & 1 , % { } ) )
112+ |> Enum . flat_map ( & compare_versions ( module , :deleted , & 1 , % { } ) )
113113 end
114114
115115 def track_assoc_deletion ( module , struct , opts ) do
@@ -118,11 +118,11 @@ defmodule ExAudit.Tracking do
118118 insert_versions ( module , deleted_structs , opts )
119119 end
120120
121- defp tracked_schemas do
122- Application . get_env ( :ex_audit , :tracked_schemas , [ ] )
121+ def tracked_schemas ( repo_module ) do
122+ Application . get_env ( :ex_audit , :ecto_repos ) |> get_in ( [ repo_module , :tracked_schemas ] )
123123 end
124124
125- defp version_schema do
126- Application . get_env ( :ex_audit , :version_schema )
125+ defp version_schema ( repo_module ) do
126+ Application . get_env ( :ex_audit , :ecto_repos ) |> get_in ( [ repo_module , : version_schema] )
127127 end
128128end
0 commit comments