defmodule Kagi.SessionToken do @moduledoc false alias Kagi.Error @spec resolve() :: {:ok, String.t()} | {:error, Error.t()} def resolve do case normalize_token(Application.get_env(:kagi_ex, :session_token)) do nil -> {:error, Error.new( :missing_session_token, "missing session token; configure :kagi_ex, :session_token" )} token -> {:ok, token} end end @spec normalize_token(term()) :: String.t() | nil defp normalize_token(token) when is_binary(token) do token = String.trim(token) if token == "", do: nil, else: token end defp normalize_token(_token), do: nil end