lib/history/tokens.ex
defmodule History.Tokens do
require Ecto.Query
alias History.{Repo, Tokens}
@type venue_and_symbol_key :: Tokens.Token.venue_and_symbol_key()
@type token :: Tokens.Token.t()
@spec search(String.t() | nil) :: [token]
def search(query) do
query
|> Tokens.Queries.Search.call()
|> Repo.all()
end
@spec by_venue_and_symbol([venue_and_symbol_key]) :: [token]
def by_venue_and_symbol(venue_and_symbol_keys) do
venue_and_symbol_keys
|> Tokens.Queries.ByVenueAndSymbol.call()
|> Repo.all()
end
def insert(params) do
changeset = Tokens.Token.changeset(%Tokens.Token{}, params)
Repo.insert(changeset)
end
def delete(id) when is_number(id), do: %Tokens.Token{id: id} |> Repo.delete()
def delete(id) when is_bitstring(id), do: id |> String.to_integer() |> delete()
end