Skip to content

Commit

Permalink
Fix Dialyzer Specs (#120)
Browse files Browse the repository at this point in the history
  • Loading branch information
maennchen committed Dec 14, 2020
1 parent 58ab072 commit d5f5e8a
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions lib/paper_trail/version_queries.ex
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,25 @@ defmodule PaperTrail.VersionQueries do
iex(1)> PaperTrail.VersionQueries.get_versions(ModelName, id)
iex(1)> PaperTrail.VersionQueries.get_versions(ModelName, id, [prefix: "tenant_id"])
"""
@spec get_versions(record :: Ecto.Schema.t()) :: Ecto.Query.t()
@spec get_versions(record :: Ecto.Schema.t()) :: [Version.t()]
def get_versions(record), do: get_versions(record, [])

@doc """
Gets all the versions of a record given a module and its id
"""
@spec get_versions(model :: module, id :: pos_integer) :: Ecto.Query.t()
@spec get_versions(model :: module, id :: pos_integer) :: [Version.t()]
def get_versions(model, id) when is_atom(model) and is_integer(id),
do: get_versions(model, id, [])

@spec get_versions(record :: Ecto.Schema.t(), options :: []) :: Ecto.Query.t()
@spec get_versions(record :: Ecto.Schema.t(), options :: []) :: [Version.t()]
def get_versions(record, options) when is_map(record) do
item_type = record.__struct__ |> Module.split() |> List.last()

version_query(item_type, PaperTrail.get_model_id(record), options)
|> PaperTrail.RepoClient.repo().all
end

@spec get_versions(model :: module, id :: pos_integer, options :: []) :: Ecto.Query.t()
@spec get_versions(model :: module, id :: pos_integer, options :: []) :: [Version.t()]
def get_versions(model, id, options) do
item_type = model |> Module.split() |> List.last()
version_query(item_type, id, options) |> PaperTrail.RepoClient.repo().all
Expand All @@ -52,22 +52,22 @@ defmodule PaperTrail.VersionQueries do
iex(1)> PaperTrail.VersionQueries.get_version(ModelName, id)
iex(1)> PaperTrail.VersionQueries.get_version(ModelName, id, [prefix: "tenant_id"])
"""
@spec get_version(record :: Ecto.Schema.t()) :: Ecto.Query.t()
@spec get_version(record :: Ecto.Schema.t()) :: Version.t() | nil
def get_version(record), do: get_version(record, [])

@spec get_version(model :: module, id :: pos_integer) :: Ecto.Query.t()
@spec get_version(model :: module, id :: pos_integer) :: Version.t() | nil
def get_version(model, id) when is_atom(model) and is_integer(id),
do: get_version(model, id, [])

@spec get_version(record :: Ecto.Schema.t(), options :: []) :: Ecto.Query.t()
@spec get_version(record :: Ecto.Schema.t(), options :: []) :: Version.t() | nil
def get_version(record, options) when is_map(record) do
item_type = record.__struct__ |> Module.split() |> List.last()

last(version_query(item_type, PaperTrail.get_model_id(record), options))
|> PaperTrail.RepoClient.repo().one
end

@spec get_version(model :: module, id :: pos_integer, options :: []) :: Ecto.Query.t()
@spec get_version(model :: module, id :: pos_integer, options :: []) :: Version.t() | nil
def get_version(model, id, options) do
item_type = model |> Module.split() |> List.last()
last(version_query(item_type, id, options)) |> PaperTrail.RepoClient.repo().one
Expand All @@ -76,6 +76,7 @@ defmodule PaperTrail.VersionQueries do
@doc """
Gets the current model record/struct of a version
"""
@spec get_current_model(version :: Version.t()) :: Ecto.Schema.t() | nil
def get_current_model(version) do
PaperTrail.RepoClient.repo().get(
("Elixir." <> version.item_type) |> String.to_existing_atom(),
Expand Down

0 comments on commit d5f5e8a

Please sign in to comment.