shortnr/lib/url/repo/dets.ex

27 lines
478 B
Elixir
Raw Normal View History

2019-12-08 18:44:04 +00:00
defmodule Shortnr.URL.Repo.DETS do
@behaviour Shortnr.URL.Repo
@impl true
def get(key) do
{:ok, :dets.lookup(:urls, key) |> List.first() |> elem(1)}
end
@impl true
def put(url) do
:ok = :dets.insert(:urls, {url.id, url})
:ok
end
@impl true
def list() do
resp = :dets.select(:urls, [{:"$1", [], [:"$1"]}])
{:ok, resp |> Enum.map(&elem(&1, 1))}
end
@impl true
def delete(key) do
:ok = :dets.delete(:urls, key)
:ok
end
2019-12-08 18:44:04 +00:00
end