Modules for interacting with the chat/messages group of Stream APIs
API Reference: https://getstream.github.io/protocol/?urls.primaryName=Chat%20v2
Shared options
All functions in this module accept the following optional parameters:
api_key- API key to use. If not provided, the default key from config will be usedauthenticate_as_user- User id to authenticate. If not provided, the server key will be usedapi_key_secret- API key secret to use. If not provided, the default secret from config will be usedendpoint- endpoint to use. If not provided, the default endpoint from config will be usedclient- HTTP client to use. Must implementExStreamClient.Http.Behavior. Defaults toExStreamClient.Httpreq_opts- all of these options will be forwarded to req. SeeReq.new/1for available options
Summary
Functions
Cast a vote on a poll
Commits a pending message, which will make it visible in the channel
Creates a new reminder
Deletes message
Delete a vote from a poll
Removes user reaction from the message
Deletes a user's created reminder
Updates message fields without storing in database, only sends update event
Returns message by ID
Returns list of reactions of specific message
Returns replies (thread) of the message
Queries history for one message
Get reactions on a message
Executes message command action with given parameters
Sends reaction to specified message
Translates message to a given language using automated translation software
Undelete a message that was previously soft-deleted
Updates message with new data
Updates certain fields of the message
Updates an existing reminder
Types
Functions
@spec cast_poll_vote( String.t(), String.t(), ExStreamClient.Model.CastPollVoteRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.PollVoteResponse.t()} | {:error, any()}
Cast a vote on a poll
Sends events:
feeds.poll.vote_castedfeeds.poll.vote_changedfeeds.poll.vote_removedpoll.vote_castedpoll.vote_changedpoll.vote_removed
Required Arguments:
message_idpoll_idpayload:Elixir.ExStreamClient.Model.CastPollVoteRequest
Optional Arguments:
- All options from Shared Options are supported.
@spec commit_message( String.t(), ExStreamClient.Model.CommitMessageRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.MessageActionResponse.t()} | {:error, any()}
Commits a pending message, which will make it visible in the channel
Sends events:
message.newmessage.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec create_reminder( String.t(), ExStreamClient.Model.CreateReminderRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.ReminderResponseData.t()} | {:error, any()}
Creates a new reminder
Sends events:
reminder.created
Required Arguments:
message_idpayload:Elixir.ExStreamClient.Model.CreateReminderRequest
Optional Arguments:
- All options from Shared Options are supported.
@spec delete_message(String.t(), [ ({:delete_for_me, boolean()} | {:deleted_by, String.t()} | {:hard, boolean()}) | shared_opts() ]) :: {:ok, ExStreamClient.Model.DeleteMessageResponse.t()} | {:error, any()}
Deletes message
Sends events:
message.deleted
Required Arguments:
id
Optional Arguments:
delete_for_medeleted_byhard- All options from Shared Options are supported.
@spec delete_poll_vote(String.t(), String.t(), String.t(), [ {:user_id, String.t()} | shared_opts() ]) :: {:ok, ExStreamClient.Model.PollVoteResponse.t()} | {:error, any()}
Delete a vote from a poll
Sends events:
feeds.poll.vote_removedpoll.vote_removed
Required Arguments:
message_idpoll_idvote_id
Optional Arguments:
user_id- All options from Shared Options are supported.
@spec delete_reaction(String.t(), String.t(), [{:user_id, String.t()} | shared_opts()]) :: {:ok, ExStreamClient.Model.DeleteReactionResponse.t()} | {:error, any()}
Removes user reaction from the message
Sends events:
reaction.deleted
Required Arguments:
idtype
Optional Arguments:
user_id- All options from Shared Options are supported.
@spec delete_reminder(String.t(), [{:user_id, String.t()} | shared_opts()]) :: {:ok, ExStreamClient.Model.DeleteReminderResponse.t()} | {:error, any()}
Deletes a user's created reminder
Sends events:
reminder.deleted
Required Arguments:
message_id
Optional Arguments:
user_id- All options from Shared Options are supported.
@spec ephemeral_message_update( String.t(), ExStreamClient.Model.UpdateMessagePartialRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.UpdateMessagePartialResponse.t()} | {:error, any()}
Updates message fields without storing in database, only sends update event
Sends events:
message.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec get_message(String.t(), [{:show_deleted_message, boolean()} | shared_opts()]) :: {:ok, ExStreamClient.Model.GetMessageResponse.t()} | {:error, any()}
Returns message by ID
Required Arguments:
id
Optional Arguments:
show_deleted_message- All options from Shared Options are supported.
@spec get_reactions(String.t(), [ ({:offset, integer()} | {:limit, integer()}) | shared_opts() ]) :: {:ok, ExStreamClient.Model.GetReactionsResponse.t()} | {:error, any()}
Returns list of reactions of specific message
Required Arguments:
id
Optional Arguments:
limitoffset- All options from Shared Options are supported.
@spec get_replies(String.t(), [ ({:id_around, String.t()} | {:id_lt, String.t()} | {:id_lte, String.t()} | {:id_gt, String.t()} | {:id_gte, String.t()} | {:limit, integer()} | {:sort, list()}) | shared_opts() ]) :: {:ok, ExStreamClient.Model.GetRepliesResponse.t()} | {:error, any()}
Returns replies (thread) of the message
Required Arguments:
parent_id
Optional Arguments:
id_aroundid_gtid_gteid_ltid_ltelimitsort- All options from Shared Options are supported.
@spec query_message_history( ExStreamClient.Model.QueryMessageHistoryRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.QueryMessageHistoryResponse.t()} | {:error, any()}
Queries history for one message
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec query_reactions( String.t(), ExStreamClient.Model.QueryReactionsRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.QueryReactionsResponse.t()} | {:error, any()}
Get reactions on a message
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec run_message_action( String.t(), ExStreamClient.Model.MessageActionRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.MessageActionResponse.t()} | {:error, any()}
Executes message command action with given parameters
Sends events:
message.new
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec send_reaction( String.t(), ExStreamClient.Model.SendReactionRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.SendReactionResponse.t()} | {:error, any()}
Sends reaction to specified message
Sends events:
reaction.newreaction.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec translate_message( String.t(), ExStreamClient.Model.TranslateMessageRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.MessageActionResponse.t()} | {:error, any()}
Translates message to a given language using automated translation software
Sends events:
message.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec undelete_message( String.t(), ExStreamClient.Model.UndeleteMessageRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.UndeleteMessageResponse.t()} | {:error, any()}
Undelete a message that was previously soft-deleted
Sends events:
message.undeleted
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec update_message( String.t(), ExStreamClient.Model.UpdateMessageRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.UpdateMessageResponse.t()} | {:error, any()}
Updates message with new data
Sends events:
message.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec update_message_partial( String.t(), ExStreamClient.Model.UpdateMessagePartialRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.UpdateMessagePartialResponse.t()} | {:error, any()}
Updates certain fields of the message
Sends events:
message.updated
Required Arguments:
Optional Arguments:
- All options from Shared Options are supported.
@spec update_reminder( String.t(), ExStreamClient.Model.UpdateReminderRequest.t(), shared_opts() ) :: {:ok, ExStreamClient.Model.UpdateReminderResponse.t()} | {:error, any()}
Updates an existing reminder
Sends events:
reminder.updated
Required Arguments:
message_idpayload:Elixir.ExStreamClient.Model.UpdateReminderRequest
Optional Arguments:
- All options from Shared Options are supported.