BaileysEx.Message.Receiver (baileys_ex v0.1.0-alpha.9)

Copy Markdown View Source

Message receive pipeline.

Summary

Functions

Converts remote error ACKs into message error events.

Decrypts, validates, normalizes, and emits incoming text/media messages.

Types

context()

@type context() :: %{
  :signal_repository => BaileysEx.Signal.Repository.t(),
  :event_emitter => GenServer.server(),
  :me_id => String.t(),
  optional(:me_lid) => String.t(),
  optional(:enable_recent_message_cache) => boolean(),
  optional(:store_ref) => BaileysEx.Connection.Store.Ref.t(),
  optional(:signal_store) => BaileysEx.Signal.Store.t(),
  optional(:send_receipt_fun) => (BaileysEx.BinaryNode.t() ->
                                    :ok | {:error, term()}),
  optional(:send_node_fun) => (BaileysEx.BinaryNode.t() ->
                                 :ok | {:error, term()}),
  optional(:fetch_reachout_timelock_fun) => (-> {:ok, map()} | {:error, term()}),
  optional(:send_placeholder_request_fun) => (struct() ->
                                                {:ok, String.t()}
                                                | {:ok, String.t(), context()}
                                                | {:error, term()}),
  optional(:get_message_fun) => (map() -> map() | nil),
  optional(atom()) => term()
}

Functions

handle_bad_ack(node, event_emitter)

@spec handle_bad_ack(BaileysEx.BinaryNode.t(), GenServer.server() | context()) :: :ok

Converts remote error ACKs into message error events.

process_node(node, context, opts \\ [])

@spec process_node(BaileysEx.BinaryNode.t(), context(), keyword()) ::
  {:ok, map(), context()} | {:error, term()}

Decrypts, validates, normalizes, and emits incoming text/media messages.