defmodule Deploy do def drops do {_, drops} = Cachex.fetch(:ops, "do/drops", fn key -> IO.puts "Pull droplets." drops = Doex.Client.list_droplets() {:commit, drops} end, expire: 1 * 60 * 60 * 1000) drops |> Enum.map(fn %{ "disk_info" => [ %{"size" => %{"amount" => a, "unit" => u} } ], "created_at" => since, "memory" => mem, "name" => name, "networks" => %{ "v4" => nets }, } -> %{ name: name, size: "#{a} #{u}", since: since, memory: "#{mem / 1024} gib", nets: (nets |> Enum.filter(& &1["type"] == "public") |> Enum.map(& &1["ip_address"]) )} end) end end