Nombaone.Events (Nomba One v0.1.0)

View Source

Events — the append-only log behind every webhook. Webhook delivery is at-least-once; this log is your reconciliation backstop when a delivery was missed or you need to backfill.

Summary

Functions

The machine-readable event catalog — every event type the platform can emit, keyed by type, each an Nombaone.EventCatalogEntry. Useful for subscription pickers or codegen.

List events, newest first. Optional filters: :type (a catalog type, e.g. "invoice.paid"), :limit, :cursor.

Retrieve one event by id (nbo…evt).

Functions

catalog(client, opts \\ [])

@spec catalog(
  Nombaone.Client.t(),
  keyword()
) ::
  {:ok, %{optional(String.t()) => Nombaone.EventCatalogEntry.t()}}
  | {:error, Nombaone.Error.t()}

The machine-readable event catalog — every event type the platform can emit, keyed by type, each an Nombaone.EventCatalogEntry. Useful for subscription pickers or codegen.

Example

{:ok, catalog} = Nombaone.Events.catalog(client)
catalog["invoice.paid"].payload  # => ["reference", ...]

catalog!(client, opts \\ [])

@spec catalog!(
  Nombaone.Client.t(),
  keyword()
) :: %{optional(String.t()) => Nombaone.EventCatalogEntry.t()}

Raising variant of catalog/2.

list(client, params \\ %{}, opts \\ [])

@spec list(Nombaone.Client.t(), map(), keyword()) ::
  {:ok, Nombaone.Page.t()} | {:error, Nombaone.Error.t()}

List events, newest first. Optional filters: :type (a catalog type, e.g. "invoice.paid"), :limit, :cursor.

Example

for event <- Nombaone.Events.list!(client, %{type: "invoice.paid"}) do
  IO.inspect({event.id, event.payload})
end

list!(client, params \\ %{}, opts \\ [])

@spec list!(Nombaone.Client.t(), map(), keyword()) :: Nombaone.Page.t()

Raising variant of list/3.

retrieve(client, id, opts \\ [])

@spec retrieve(Nombaone.Client.t(), String.t(), keyword()) ::
  {:ok, Nombaone.DomainEvent.t()} | {:error, Nombaone.Error.t()}

Retrieve one event by id (nbo…evt).

retrieve!(client, id, opts \\ [])

Raising variant of retrieve/3.