Current section

Files

Jump to
ex_chargebee lib ex_chargebee resources event.ex
Raw

lib/ex_chargebee/resources/event.ex

defmodule ExChargebee.Event do
@moduledoc """
an interface for interacting with Events
"""
@resource "event"
alias ExChargebee.Interface
def retrieve(id, opts \\ []) do
id |> resource_path() |> Interface.get(%{}, opts) |> Map.get(@resource)
rescue
ExChargebee.NotFoundError -> nil
end
def list(params \\ %{}, opts \\ []) do
# Should pagination be by default?
case Interface.get(resource_base_path(), params, opts) do
%{"list" => current_list, "next_offset" => next_offset} ->
Enum.map(current_list, &Map.get(&1, @resource)) ++
__MODULE__.list(Map.merge(params, %{"offset" => next_offset}))
%{"list" => current_list} ->
Enum.map(current_list, &Map.get(&1, @resource))
end
end
defp resource_base_path do
"/#{@resource}s"
end
defp resource_path(id) do
"#{resource_base_path()}/#{id}"
end
end