defmodule ApiBrasil.Data.DatabaseIp do @moduledoc """ GeoIP (device-based): `POST /database/ip`. {:ok, envelope} = ApiBrasil.Data.DatabaseIp.ip(client, %{"ip" => "8.8.8.8"}) ApiBrasil.Core.DeviceResponse.response(envelope) """ use ApiBrasil.Core.Service @doc """ Consulta a base de IPs: `POST /database/ip`, com body `%{"ip" => "8.8.8.8"}`. """ @spec ip(Client.t(), term(), keyword()) :: {:ok, DeviceResponse.t()} | {:error, Error.t()} def ip(client, body \\ nil, opts \\ []) do Service.device(client, "database", "ip", body, opts) end @doc "Como `ip/3`, mas levanta `ApiBrasil.Core.Error` em caso de falha." @spec ip!(Client.t(), term(), keyword()) :: DeviceResponse.t() def ip!(client, body \\ nil, opts \\ []) do Service.unwrap!(ip(client, body, opts)) end end