lib/census/adapters/http_adapter.ex
defmodule Census.HttpAdapter do
@behaviour Census.Adapter
alias Census.{Query, Response}
@connect_options [
timeout: 30_000,
connect_timeout: 30_000,
recv_timeout: 30_000
]
@impl true
def run(query) do
query
|> Query.url()
|> HTTPoison.get([], @connect_options)
|> case do
{:ok, response} -> Response.decode(query, response)
{:error, error} -> {:error, to_string(error.reason)}
end
end
end