lib/api/data/files.ex

defmodule MyspaceIPFS.Api.Data.Files do
  @moduledoc """
  MyspaceIPFS.Api is where the files commands of the IPFS API reside.
  """

  import MyspaceIPFS.Connection
  import MyspaceIPFS.Utils

  @spec cp(binary, binary) :: any
  def cp(source, dest), do: request_get("/files/cp?arg=" <> source <> "&arg=" <> dest)

  @spec flush :: any
  def flush, do: request_get("/files/flush")

  @spec ls :: any
  def ls, do: request_get("/files/ls")

  @spec mkdir(binary) :: any
  def mkdir(path), do: request_get("/files/mkdir?arg=", path)

  @spec mv(binary, binary) :: any
  def mv(source, dest), do: request_get("/files/mv?arg=" <> source <> "&arg=" <> dest)

  @spec read(binary) :: any
  def read(path), do: request_get("/files/read?arg=", path)

  @spec rm(binary) :: any
  def rm(path), do: request_get("/files/rm?arg=", path)

  @spec stat(binary) :: any
  def stat(path), do: request_get("/files/stat?arg=", path)

  @spec write(binary, binary) :: any
  def write(path, data),
    do: setup_multipart_form(data) |> request_post("/files/write?arg=" <> path)
end