defmodule COS.Service do
alias COS.HTTPClient
@doc """
查询存储桶列表 - [腾讯云文档](https://cloud.tencent.com/document/product/436/8291)
查询请求者名下的所有存储桶列表或特定地域下的存储桶列表。
"""
@spec list_buckets(host :: binary(), opts :: [tesla_opts: Tesla.Env.opts()]) :: Tesla.Env.t()
def list_buckets(host, opts \\ []) do
with {:ok, response} <- HTTPClient.request(method: :get, url: host, opts: opts[:tesla_opts]) do
buckets =
response.body
|> get_in(["list_all_my_buckets_result", "buckets", "bucket"])
|> List.wrap()
owner = get_in(response.body, ["list_all_my_buckets_result", "owner"])
{:ok, %{response | body: %{"buckets" => buckets, "owner" => owner}}}
end
end
end