Current section

Files

Jump to
pigeon lib pigeon apns token.ex
Raw

lib/pigeon/apns/token.ex

defmodule Pigeon.APNS.Token do
@moduledoc false
@type t :: {non_neg_integer(), binary() | nil}
@spec start_link((() -> any())) :: Agent.on_start()
def start_link(_) do
Agent.start_link(fn -> %{} end, name: __MODULE__)
end
@spec get(String.t()) :: t
def get(name) do
Agent.get(__MODULE__, &Map.get(&1, name, {0, nil}))
end
@spec update(String.t(), t) :: :ok
def update(name, token) do
Agent.update(__MODULE__, &Map.put(&1, name, token))
end
end