XmtpElixirSdk.Conversations
(xmtp_elixir_sdk v0.1.2)
Copy Markdown
Find, create, and list conversations.
This module is the usual starting point after you have a client.
Common tasks:
- fetch a conversation by id
- list direct messages or groups
- create a new DM
- create a new group
- create conversations from identifiers instead of raw inbox ids
Returned conversation structs are intended to be passed into
XmtpElixirSdk.Messages, XmtpElixirSdk.Groups, and related modules.
Summary
Functions
@spec create_dm( XmtpElixirSdk.Client.t(), String.t(), XmtpElixirSdk.Types.CreateDmOptions.t() | nil ) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_dm_with_identifier( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t(), XmtpElixirSdk.Types.CreateDmOptions.t() | nil ) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_group( XmtpElixirSdk.Client.t(), [String.t()], XmtpElixirSdk.Types.CreateGroupOptions.t() | nil ) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_group_optimistic( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.CreateGroupOptions.t() | nil ) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_group_with_identifiers( XmtpElixirSdk.Client.t(), [XmtpElixirSdk.Types.Identifier.t()], XmtpElixirSdk.Types.CreateGroupOptions.t() | nil ) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec duplicate_dms(XmtpElixirSdk.Conversation.t()) :: {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec fetch_dm_by_identifier( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, XmtpElixirSdk.Conversation.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec get_by_id(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, XmtpElixirSdk.Conversation.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec get_dm_by_inbox_id(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, XmtpElixirSdk.Conversation.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec get_message_by_id( XmtpElixirSdk.Client.t(), String.t(), XmtpElixirSdk.CodecRegistry.t() ) :: {:ok, XmtpElixirSdk.DecodedMessage.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec hmac_keys(XmtpElixirSdk.Client.t()) :: {:ok, [XmtpElixirSdk.Types.HmacKeyEntry.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec list( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.ListConversationsOptions.t() | nil ) :: {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec list_dms( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.ListConversationsOptions.t() | nil ) :: {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec list_groups( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.ListConversationsOptions.t() | nil ) :: {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec sync(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.SyncResult.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec sync_all(XmtpElixirSdk.Client.t(), [XmtpElixirSdk.Types.consent_state()] | nil) :: {:ok, XmtpElixirSdk.Types.SyncResult.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec topic(XmtpElixirSdk.Client.t()) :: String.t() | nil