Current section
Files
Jump to
Current section
Files
lib/version_queries.ex
defmodule Crumb.VersionQueries do
import Ecto.Query
alias Crumb.Version
@repo Crumb.RepoClient.repo
def get_versions(model, id) do
item_type = model |> Module.split |> List.last
version_query(item_type, id) |> @repo.all
end
def get_versions(record) do
item_type = record.__struct__ |> Module.split |> List.last
version_query(item_type, record.id) |> @repo.all
end
def get_version(model, id) do
item_type = Module.split(model) |> List.last
last(version_query(item_type, id)) |> @repo.one
end
def get_version(record) do
item_type = record.__struct__ |> Module.split |> List.last
last(version_query(item_type, record.id)) |> @repo.one
end
defp version_query(item_type, id) do
from v in Version,
where: v.item_type == ^item_type and v.item_id == ^id
end
end