defmodule IRemoteStorage do use Tesla plug(SteamAPI, "ISteamRemoteStorage") plug(Tesla.Middleware.FormUrlencoded) def _helper(c, i) do num = Enum.count(i) m = i |> Enum.with_index() |> Enum.map(fn {x, y} -> %{"publishedfileids[#{y}]" => x} end) |> Enum.reduce(fn x, xs -> Map.merge(x, xs) end) Map.merge(%{"#{c}count" => num}, m) end def collection(collections) do vars = _helper("collection", collections) if {:ok, response} = post("GetCollectionDetails/v1", vars) do Jason.decode(response.body, %{keys: :atoms}) end end def item(items) do vars = _helper("item", items) if {:ok, response} = post("GetPublishedFileDetails/v1", vars) do Jason.decode(response.body, %{keys: :atoms}) end end end