Skip to main content

lib/coffrify/resources/templates.ex

defmodule Coffrify.Resources.Templates do
  @moduledoc "Transfer templates — reusable presets for expiration, password, geo, watermark."

  alias Coffrify

  @doc "List templates."
  @spec list(Coffrify.t()) :: {:ok, map()} | {:error, Exception.t()}
  def list(client), do: Coffrify.request(client, :get, "/templates")

  @doc "Create a template."
  @spec create(Coffrify.t(), map() | keyword()) :: {:ok, map()} | {:error, Exception.t()}
  def create(client, opts), do: Coffrify.request(client, :post, "/templates", Map.new(opts))

  @doc "Delete a template."
  @spec delete(Coffrify.t(), String.t()) :: {:ok, map()} | {:error, Exception.t()}
  def delete(client, id), do: Coffrify.request(client, :delete, "/templates/#{URI.encode(id)}")
end