forked from AkkomaGang/akkoma
37 lines
794 B
Elixir
37 lines
794 B
Elixir
defmodule Tesla.Mock.Agent do
|
|
@moduledoc false
|
|
|
|
# require Logger
|
|
|
|
def init() do
|
|
Agent.start_link(fn -> [] end, name: __MODULE__)
|
|
end
|
|
|
|
def stop() do
|
|
# Agent.stop(__MODULE__)
|
|
end
|
|
|
|
def add_hit(key, env) do
|
|
# if Enum.member?([:post, :put], env.method) do
|
|
# Logger.error("#{key} #{env.method} #{env.url} #{inspect(env.body)}")
|
|
# else
|
|
# Logger.error("#{key} #{env.method} #{env.url} #{inspect(env.query)}")
|
|
# end
|
|
|
|
Agent.update(__MODULE__, fn state -> [{key, env} | state] end)
|
|
end
|
|
|
|
def access_list(key) do
|
|
Agent.get(__MODULE__, fn state ->
|
|
Enum.filter(state, fn {k, _v} -> k == key end)
|
|
|> Enum.map(fn {_k, v} -> v end)
|
|
|> Enum.reverse()
|
|
end)
|
|
end
|
|
|
|
def hits(key) do
|
|
access_list(key)
|
|
|> Enum.count()
|
|
end
|
|
end
|