XmtpElixirSdk.Preferences
(xmtp_elixir_sdk v0.1.2)
Copy Markdown
Consent, inbox-state, and preference-sync operations.
This module deals with information that is about the client or inbox rather than about one specific conversation.
Use it to:
- sync preference state
- inspect inbox state
- fetch inbox states for other inbox ids
- set and read consent state
Consent updates use one canonical shape:
inbox consent:
%{entity: "inbox-id", state: :allowed | :denied | :unknown}group consent:
%{group_id: "group-id", state: :allowed | :denied | :unknown}
Preference events emit XmtpElixirSdk.Types.PreferenceUpdate structs only.
Summary
Functions
@spec fetch_inbox_state(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.InboxState.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec fetch_inbox_states(XmtpElixirSdk.Client.t(), [String.t()]) :: {:ok, [XmtpElixirSdk.Types.InboxState.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec get_consent_state( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.consent_entity_type(), String.t() ) :: {:ok, XmtpElixirSdk.Types.consent_state()} | {:error, XmtpElixirSdk.Error.t()}
@spec get_inbox_states(XmtpElixirSdk.Client.t(), [String.t()]) :: {:ok, [XmtpElixirSdk.Types.InboxState.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec inbox_state(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.InboxState.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec set_consent_states(XmtpElixirSdk.Client.t(), [ XmtpElixirSdk.Types.consent_record() ]) :: {:ok, :ok} | {:error, XmtpElixirSdk.Error.t()}
@spec sync(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.SyncResult.t()} | {:error, XmtpElixirSdk.Error.t()}