lib/cape/utilita.ex

defmodule Cape.Utilita do
  def struct2map_no_nil(query) do
    mappa_senza_nil =
      query
      |> Map.from_struct()
      |> filtra_no_nil()

    mappa_senza_nil
  end

  def filtra_no_nil(mappa) do
    mappa
    |> Enum.filter(fn {_, v} -> v != nil end)
    |> Enum.into(%{})
  end

  def filtra_solo(mappa, solo_keys \\ MapSet.new()) do
    mappa
    |> Enum.filter(fn {k, _v} -> MapSet.member?(solo_keys, k) end)
    |> Enum.into(%{})
  end

  def encode_query(query) do
    URI.encode_query(query)
  end
end