ExStreamClient.Operations.Chat.Channels (ExStreamClient v0.1.7)

View Source

Modules for interacting with the chat/channels 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 used
  • api_key_secret - API key secret to use. If not provided, the default secret from config will be used
  • endpoint - endpoint to use. If not provided, the default endpoint from config will be used
  • client - HTTP client to use. Must implement ExStreamClient.Http.Behavior. Defaults to ExStreamClient.Http
  • req_opts - all of these options will be forwarded to req. See Req.new/1 for available options

Summary

Functions

Allows to delete several channels at once asynchronously

Deletes previously uploaded file

Deletes previously uploaded image

Returns list messages found by IDs

This Method creates a channel or returns an existing one with matching attributes

This Method creates a channel or returns an existing one with matching attributes

Marks channel as hidden for current user

Marks channels as read up to the specific message. If no channels is given, mark all channel as read

Marks channel as read up to the specific message

Marks channel as unread from a specific message

Query channels with filter query

Sends event to the channel

Sends new message to the specified channel

Shows previously hidden channel

Truncates messages from a channel. Can be applied to the entire channel or scoped to specific members.

Updates certain fields of the channel

Types

shared_opts()

@type shared_opts() :: [
  api_key: String.t(),
  api_key_secret: String.t(),
  client: module(),
  endpoint: String.t(),
  req_opts: keyword()
]

Functions

delete_channel(type, id, opts \\ [])

@spec delete_channel(String.t(), String.t(), [
  {:hard_delete, boolean()} | shared_opts()
]) ::
  {:ok, ExStreamClient.Model.DeleteChannelResponse.t()} | {:error, any()}

Deletes channel

Sends events:

  • channel.deleted
  • channel.deleted

Required Arguments:

  • type
  • id

Optional Arguments:

delete_channels(payload, opts \\ [])

Allows to delete several channels at once asynchronously

Sends events:

  • channel.deleted
  • channel.deleted

Required Arguments:

Optional Arguments:

delete_draft(type, id, opts \\ [])

@spec delete_draft(String.t(), String.t(), [
  ({:user_id, String.t()} | {:parent_id, String.t()}) | shared_opts()
]) :: {:ok, ExStreamClient.Model.Response.t()} | {:error, any()}

Deletes a draft

Sends events:

  • draft.deleted

Required Arguments:

  • type
  • id

Optional Arguments:

delete_file(type, id, opts \\ [])

@spec delete_file(String.t(), String.t(), [{:url, String.t()} | shared_opts()]) ::
  {:ok, ExStreamClient.Model.Response.t()} | {:error, any()}

Deletes previously uploaded file

Required Arguments:

  • type
  • id

Optional Arguments:

delete_image(type, id, opts \\ [])

@spec delete_image(String.t(), String.t(), [{:url, String.t()} | shared_opts()]) ::
  {:ok, ExStreamClient.Model.Response.t()} | {:error, any()}

Deletes previously uploaded image

Required Arguments:

  • type
  • id

Optional Arguments:

get_draft(type, id, opts \\ [])

@spec get_draft(String.t(), String.t(), [
  ({:user_id, String.t()} | {:parent_id, String.t()}) | shared_opts()
]) :: {:ok, ExStreamClient.Model.GetDraftResponse.t()} | {:error, any()}

Get a draft

Required Arguments:

  • type
  • id

Optional Arguments:

get_many_messages(type, id, ids, opts \\ [])

@spec get_many_messages(String.t(), String.t(), list(), shared_opts()) ::
  {:ok, ExStreamClient.Model.GetManyMessagesResponse.t()} | {:error, any()}

Returns list messages found by IDs

Required Arguments:

  • type
  • id
  • ids

Optional Arguments:

get_or_create_channel(type, id, payload, opts \\ [])

This Method creates a channel or returns an existing one with matching attributes

Sends events:

  • channel.created
  • member.added
  • member.removed
  • member.updated
  • user.watching.start

Required Arguments:

Optional Arguments:

get_or_create_distinct_channel(type, payload, opts \\ [])

@spec get_or_create_distinct_channel(
  String.t(),
  ExStreamClient.Model.ChannelGetOrCreateRequest.t(),
  shared_opts()
) :: {:ok, ExStreamClient.Model.ChannelStateResponse.t()} | {:error, any()}

This Method creates a channel or returns an existing one with matching attributes

Sends events:

  • channel.created
  • member.added
  • member.removed
  • member.updated
  • user.watching.start

Required Arguments:

Optional Arguments:

hide_channel(type, id, payload, opts \\ [])

Marks channel as hidden for current user

Sends events:

  • channel.hidden
  • channel.hidden

Required Arguments:

Optional Arguments:

mark_channels_read(payload, opts \\ [])

Marks channels as read up to the specific message. If no channels is given, mark all channel as read

Sends events:

  • message.read
  • message.read

Required Arguments:

Optional Arguments:

mark_read(type, id, payload, opts \\ [])

Marks channel as read up to the specific message

Sends events:

  • message.read
  • message.read

Required Arguments:

Optional Arguments:

mark_unread(type, id, payload, opts \\ [])

Marks channel as unread from a specific message

Required Arguments:

Optional Arguments:

query_channels(payload, opts \\ [])

Query channels with filter query

Required Arguments:

Optional Arguments:

send_event(type, id, payload, opts \\ [])

Sends event to the channel

Required Arguments:

Optional Arguments:

send_message(type, id, payload, opts \\ [])

Sends new message to the specified channel

Sends events:

  • message.new
  • message.updated
  • message.new
  • message.updated

Required Arguments:

Optional Arguments:

show_channel(type, id, payload, opts \\ [])

Shows previously hidden channel

Sends events:

  • channel.visible
  • channel.visible

Required Arguments:

Optional Arguments:

truncate_channel(type, id, payload, opts \\ [])

Truncates messages from a channel. Can be applied to the entire channel or scoped to specific members.

Sends events:

  • channel.truncated
  • channel.truncated

Required Arguments:

Optional Arguments:

update_channel(type, id, payload, opts \\ [])

Change channel data

Sends events:

  • channel.updated
  • member.added
  • member.removed
  • member.updated
  • message.new
  • channel.updated
  • member.added
  • member.removed
  • member.updated
  • message.new

Required Arguments:

Optional Arguments:

update_channel_partial(type, id, payload, opts \\ [])

Updates certain fields of the channel

Sends events:

  • channel.updated
  • channel.updated

Required Arguments:

Optional Arguments:

update_member_partial(type, id, payload, opts \\ [])

@spec update_member_partial(
  String.t(),
  String.t(),
  ExStreamClient.Model.UpdateMemberPartialRequest.t(),
  [{:user_id, String.t()} | shared_opts()]
) ::
  {:ok, ExStreamClient.Model.UpdateMemberPartialResponse.t()} | {:error, any()}

Required Arguments:

Optional Arguments:

upload_file(type, id, payload, opts \\ [])

Uploads file

Required Arguments:

Optional Arguments:

upload_image(type, id, payload, opts \\ [])

Uploads image

Required Arguments:

Optional Arguments: