lib/easypost/webhook.ex

defmodule EasyPost.Webhook do
  @doc """
  Create a `Webhook`.
  """
  @spec create(map) :: EasyPost.Operation.t()
  def create(params) do
    %EasyPost.Operation{ method: :post, params: params, path: "/webhooks" }
  end

  @doc """
  Delete a `Webhook`.
  """
  @spec delete(String.t()) :: EasyPost.Operation.t()
  def delete(id) do
    %EasyPost.Operation{ method: :delete, path: "/webhooks/#{id}" }
  end

  @doc """
  Retrieve a `Webhook`.
  """
  @spec get(String.t()) :: EasyPost.Operation.t()
  def get(id) do
    %EasyPost.Operation{ method: :get, path: "/webhooks/#{id}" }
  end

  @doc """
  Retrieve a list of `Webhook`'s.
  """
  @spec list :: EasyPost.Operation.t()
  def list do
    %EasyPost.Operation{ method: :get, path: "/webhooks" }
  end

  @doc """
  Update a `Webhook`.
  """
  @spec update(String.t(), map) :: EasyPost.Operation.t()
  def update(id, params) do
    %EasyPost.Operation{ method: :put, params: params, path: "/webhooks/#{id}" }
  end
end