ArchAstro. Channels. ApiChat
(archastro v0.2.0)
Copy Markdown
Channel for real-time chat messaging.
Supports team-scoped and user-scoped threads with keyed, transient, and direct thread access patterns.
Summary
Functions
@spec api_chat_add_reaction( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatAddReaction.Input.t(), timeout() ) :: {:ok, ArchAstro.JSON.object() | :ok} | {:error, ArchAstro.Error.reason()}
@spec api_chat_delete_message( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatDeleteMessage.Input.t(), timeout() ) :: {:ok, ArchAstro.JSON.object() | :ok} | {:error, ArchAstro.Error.reason()}
@spec api_chat_edit_message( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatEditMessage.Input.t(), timeout() ) :: {:ok, ArchAstro.JSON.object() | :ok} | {:error, ArchAstro.Error.reason()}
@spec api_chat_fork_thread( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatForkThread.Input.t(), timeout() ) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatForkThread.Response.t()} | {:error, ArchAstro.Error.reason()}
@spec api_chat_list_messages(ArchAstro.Channel.t(), timeout()) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatListMessages.Response.t()} | {:error, ArchAstro.Error.reason()}
api_chat_load_more_messages(channel, payload \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatLoadMoreMessages.Input{}, timeout \\ 5000)
@spec api_chat_load_more_messages( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatLoadMoreMessages.Input.t(), timeout() ) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatLoadMoreMessages.Response.t()} | {:error, ArchAstro.Error.reason()}
@spec api_chat_mark_thread_read( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatMarkThreadRead.Input.t(), timeout() ) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatMarkThreadRead.Response.t()} | {:error, ArchAstro.Error.reason()}
@spec api_chat_post_message( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatPostMessage.Input.t(), timeout() ) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatPostMessage.Response.t()} | {:error, ArchAstro.Error.reason()}
api_chat_post_simple_message(channel, payload \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatPostSimpleMessage.Input{}, timeout \\ 5000)
@spec api_chat_post_simple_message( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatPostSimpleMessage.Input.t(), timeout() ) :: {:ok, ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatPostSimpleMessage.Response.t()} | {:error, ArchAstro.Error.reason()}
@spec api_chat_remove_reaction( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatRemoveReaction.Input.t(), timeout() ) :: {:ok, ArchAstro.JSON.object() | :ok} | {:error, ArchAstro.Error.reason()}
@spec api_chat_typing( ArchAstro.Channel.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.ApiChatTyping.Input.t(), timeout() ) :: {:ok, ArchAstro.JSON.object() | :ok} | {:error, ArchAstro.Error.reason()}
join_team_keyed(socket, team_id, key, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamKeyed.Params{})
@spec join_team_keyed( GenServer.server(), String.t(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamKeyed.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
join_team_thread(socket, team_id, thread_id, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamThread.Params{})
@spec join_team_thread( GenServer.server(), String.t(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamThread.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
join_team_transient(socket, team_id, key, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamTransient.Params{})
@spec join_team_transient( GenServer.server(), String.t(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinTeamTransient.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
join_user_keyed(socket, key, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserKeyed.Params{})
@spec join_user_keyed( GenServer.server(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserKeyed.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
join_user_thread(socket, thread_id, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserThread.Params{})
@spec join_user_thread( GenServer.server(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserThread.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
join_user_transient(socket, key, params \\ %ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserTransient.Params{})
@spec join_user_transient( GenServer.server(), String.t(), ArchAstro.Types.ChannelPayloads.ApiChatChannel.JoinUserTransient.Params.t() ) :: {:ok, ArchAstro.Channel.t()} | {:error, ArchAstro.Error.reason()}
@spec leave(ArchAstro.Channel.t()) :: :ok | {:error, ArchAstro.Error.reason()}
@spec subscribe_message_added(ArchAstro.Channel.t(), pid()) :: :ok
@spec subscribe_message_updated(ArchAstro.Channel.t(), pid()) :: :ok
@spec subscribe_system_event(ArchAstro.Channel.t(), pid()) :: :ok
@spec subscribe_thread_event(ArchAstro.Channel.t(), pid()) :: :ok
@spec subscribe_typing(ArchAstro.Channel.t(), pid()) :: :ok