@@ -15,25 +15,25 @@ defmodule PaperTrail.VersionQueries do
15
15
iex(1)> PaperTrail.VersionQueries.get_versions(ModelName, id)
16
16
iex(1)> PaperTrail.VersionQueries.get_versions(ModelName, id, [prefix: "tenant_id"])
17
17
"""
18
- @ spec get_versions ( record :: Ecto.Schema . t ( ) ) :: Ecto.Query . t ( )
18
+ @ spec get_versions ( record :: Ecto.Schema . t ( ) ) :: [ Version . t ( ) ]
19
19
def get_versions ( record ) , do: get_versions ( record , [ ] )
20
20
21
21
@ doc """
22
22
Gets all the versions of a record given a module and its id
23
23
"""
24
- @ spec get_versions ( model :: module , id :: pos_integer ) :: Ecto.Query . t ( )
24
+ @ spec get_versions ( model :: module , id :: pos_integer ) :: [ Version . t ( ) ]
25
25
def get_versions ( model , id ) when is_atom ( model ) and is_integer ( id ) ,
26
26
do: get_versions ( model , id , [ ] )
27
27
28
- @ spec get_versions ( record :: Ecto.Schema . t ( ) , options :: [ ] ) :: Ecto.Query . t ( )
28
+ @ spec get_versions ( record :: Ecto.Schema . t ( ) , options :: [ ] ) :: [ Version . t ( ) ]
29
29
def get_versions ( record , options ) when is_map ( record ) do
30
30
item_type = record . __struct__ |> Module . split ( ) |> List . last ( )
31
31
32
32
version_query ( item_type , PaperTrail . get_model_id ( record ) , options )
33
33
|> PaperTrail.RepoClient . repo ( ) . all
34
34
end
35
35
36
- @ spec get_versions ( model :: module , id :: pos_integer , options :: [ ] ) :: Ecto.Query . t ( )
36
+ @ spec get_versions ( model :: module , id :: pos_integer , options :: [ ] ) :: [ Version . t ( ) ]
37
37
def get_versions ( model , id , options ) do
38
38
item_type = model |> Module . split ( ) |> List . last ( )
39
39
version_query ( item_type , id , options ) |> PaperTrail.RepoClient . repo ( ) . all
@@ -52,22 +52,22 @@ defmodule PaperTrail.VersionQueries do
52
52
iex(1)> PaperTrail.VersionQueries.get_version(ModelName, id)
53
53
iex(1)> PaperTrail.VersionQueries.get_version(ModelName, id, [prefix: "tenant_id"])
54
54
"""
55
- @ spec get_version ( record :: Ecto.Schema . t ( ) ) :: Ecto.Query . t ( )
55
+ @ spec get_version ( record :: Ecto.Schema . t ( ) ) :: Version . t ( ) | nil
56
56
def get_version ( record ) , do: get_version ( record , [ ] )
57
57
58
- @ spec get_version ( model :: module , id :: pos_integer ) :: Ecto.Query . t ( )
58
+ @ spec get_version ( model :: module , id :: pos_integer ) :: Version . t ( ) | nil
59
59
def get_version ( model , id ) when is_atom ( model ) and is_integer ( id ) ,
60
60
do: get_version ( model , id , [ ] )
61
61
62
- @ spec get_version ( record :: Ecto.Schema . t ( ) , options :: [ ] ) :: Ecto.Query . t ( )
62
+ @ spec get_version ( record :: Ecto.Schema . t ( ) , options :: [ ] ) :: Version . t ( ) | nil
63
63
def get_version ( record , options ) when is_map ( record ) do
64
64
item_type = record . __struct__ |> Module . split ( ) |> List . last ( )
65
65
66
66
last ( version_query ( item_type , PaperTrail . get_model_id ( record ) , options ) )
67
67
|> PaperTrail.RepoClient . repo ( ) . one
68
68
end
69
69
70
- @ spec get_version ( model :: module , id :: pos_integer , options :: [ ] ) :: Ecto.Query . t ( )
70
+ @ spec get_version ( model :: module , id :: pos_integer , options :: [ ] ) :: Version . t ( ) | nil
71
71
def get_version ( model , id , options ) do
72
72
item_type = model |> Module . split ( ) |> List . last ( )
73
73
last ( version_query ( item_type , id , options ) ) |> PaperTrail.RepoClient . repo ( ) . one
@@ -76,6 +76,7 @@ defmodule PaperTrail.VersionQueries do
76
76
@ doc """
77
77
Gets the current model record/struct of a version
78
78
"""
79
+ @ spec get_current_model ( version :: Version . t ( ) ) :: Ecto.Schema . t ( ) | nil
79
80
def get_current_model ( version ) do
80
81
PaperTrail.RepoClient . repo ( ) . get (
81
82
( "Elixir." <> version . item_type ) |> String . to_existing_atom ( ) ,
0 commit comments