defmodule Brawlex.TokenInterface do @spec get_brawlers(pid(), timeout()) :: {:ok, list(map())} | {:error, any()} def get_brawlers(tpid, timeout \\ 5000) do try do GenServer.call(tpid, :brawlers, timeout) catch :exit , error -> {:error, error} else {:ok, res} -> {:ok, res} end end @spec get_brawler(pid(), String.t(), timeout()) :: {:ok, list(map())} | {:error, any()} def get_brawler(tpid, id, timeout \\ 5000) do try do GenServer.call(tpid, {:brawler, id}, timeout) catch :exit , error -> {:error, error} else {:ok, res} -> {:ok, res} end end @spec get_ranking_players(pid(), String.t(), timeout()) :: {:ok, list(map())} | {:error, any()} def get_ranking_players(tpid, id, timeout \\ 5000) do try do GenServer.call(tpid, {:brawler, id}, timeout) catch :exit , error -> {:error, error} else {:ok, res} -> {:ok, res} end end @spec close_connection(pid()) :: :ok def close_connection(tpid) do GenServer.cast(tpid, :close) end end