Current section

Files

Jump to
hikvision_client lib hikvision http utils.ex
Raw

lib/hikvision/http/utils.ex

defmodule Hikvision.Http.Utils do
@moduledoc false
def build_url(operation, config) do
config
|> Map.take([:host, :scheme, :port])
|> Map.put(:query, query(operation))
|> Map.put(:path, operation.path)
|> then(&struct(URI, &1))
|> to_string()
end
defp query(operation) do
operation
|> Map.get(:params, %{})
|> remove_nil_values()
|> URI.encode_query()
end
defp remove_nil_values(params) when is_map(params) do
for {k, v} <- params, not is_nil(v), into: %{}, do: {k, v}
end
end