steamwebapi/lib/IRemoteStorage.ex

40 lines
820 B
Elixir

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