Amarula.Connection.GroupOps (amarula v0.2.4)

View Source

Pure group-query builders for Amarula.Connection.

Each function builds the {iq, transform} pair the group callbacks feed to Connection.send_waiter_iq/4 — the IQ node to send and the fun that turns the reply node into the consumer result (%Amarula.Group{} / a list of them). No socket, no state: the IQ correlation + dispatch stay on Connection; only the request shape and reply parsing live here, testable in isolation.

Summary

Functions

Query all joined groups → {iq, transform} yielding [%Amarula.Group{}].

Query one group's metadata → {iq, transform} yielding %Amarula.Group{}.

Types

transform()

@type transform() :: ({:ok, term()} | {:error, term()} ->
                  {:ok, term()} | {:error, term()})

Functions

list()

@spec list() :: {term(), transform()}

Query all joined groups → {iq, transform} yielding [%Amarula.Group{}].

metadata(group_jid)

@spec metadata(String.t()) :: {term(), transform()}

Query one group's metadata → {iq, transform} yielding %Amarula.Group{}.