defmodule FirebaseAuth.Client do
require Logger
@cert_url "https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com"
defp http_client do
Application.get_env(:firebase_auth, :http_client, HTTPoison)
end
def get() do
case http_client().get(@cert_url) do
{:ok, %{status_code: 200, body: body}} ->
{:ok, body |> Jason.decode!()}
{:ok, %{status_code: status_code}} ->
Logger.error("Error fetching public key with status code: #{status_code}")
{:error, "Status code: #{status_code}"}
{:error, _} = error ->
Logger.error("Error fetching public keys. Error: " <> inspect(error))
error
end
end
end