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

View Source

Modules for interacting with the chat/channels group of Stream APIs

API Reference: https://getstream.github.io/protocol/?urls.primaryName=Chat%20v2

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

Functions

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

@spec delete_channel(String.t(), String.t(), client: module(), hard_delete: boolean()) ::
  {: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 \\ [])

@spec delete_channels(ExStreamClient.Model.DeleteChannelsRequest.t(), [
  {:client, module()}
]) ::
  {:ok, ExStreamClient.Model.DeleteChannelsResponse.t()} | {:error, any()}

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(),
  client: module(),
  user_id: String.t(),
  parent_id: String.t()
) ::
  {: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(), client: module(), url: String.t()) ::
  {: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(), client: module(), url: String.t()) ::
  {: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(),
  client: module(),
  user_id: String.t(),
  parent_id: String.t()
) ::
  {: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(), [{:client, module()}]) ::
  {: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 \\ [])

@spec get_or_create_channel(
  String.t(),
  String.t(),
  ExStreamClient.Model.ChannelGetOrCreateRequest.t(),
  [{:client, module()}]
) :: {: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:

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

@spec get_or_create_distinct_channel(
  String.t(),
  ExStreamClient.Model.ChannelGetOrCreateRequest.t(),
  [{:client, module()}]
) :: {: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 \\ [])

@spec hide_channel(
  String.t(),
  String.t(),
  ExStreamClient.Model.HideChannelRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.HideChannelResponse.t()} | {:error, any()}

Marks channel as hidden for current user

Sends events:

  • channel.hidden
  • channel.hidden

Required Arguments:

Optional Arguments:

mark_channels_read(payload, opts \\ [])

@spec mark_channels_read(ExStreamClient.Model.MarkChannelsReadRequest.t(), [
  {:client, module()}
]) ::
  {:ok, ExStreamClient.Model.MarkReadResponse.t()} | {:error, any()}

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 \\ [])

@spec mark_read(String.t(), String.t(), ExStreamClient.Model.MarkReadRequest.t(), [
  {:client, module()}
]) ::
  {:ok, ExStreamClient.Model.MarkReadResponse.t()} | {:error, any()}

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 \\ [])

@spec mark_unread(
  String.t(),
  String.t(),
  ExStreamClient.Model.MarkUnreadRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.Response.t()} | {:error, any()}

Marks channel as unread from a specific message

Required Arguments:

Optional Arguments:

query_channels(payload, opts \\ [])

@spec query_channels(ExStreamClient.Model.QueryChannelsRequest.t(), [
  {:client, module()}
]) ::
  {:ok, ExStreamClient.Model.QueryChannelsResponse.t()} | {:error, any()}

Query channels with filter query

Required Arguments:

Optional Arguments:

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

@spec send_event(String.t(), String.t(), ExStreamClient.Model.SendEventRequest.t(), [
  {:client, module()}
]) :: {:ok, ExStreamClient.Model.EventResponse.t()} | {:error, any()}

Sends event to the channel

Required Arguments:

Optional Arguments:

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

@spec send_message(
  String.t(),
  String.t(),
  ExStreamClient.Model.SendMessageRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.SendMessageResponse.t()} | {:error, any()}

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 \\ [])

@spec show_channel(
  String.t(),
  String.t(),
  ExStreamClient.Model.ShowChannelRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.ShowChannelResponse.t()} | {:error, any()}

Shows previously hidden channel

Sends events:

  • channel.visible
  • channel.visible

Required Arguments:

Optional Arguments:

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

@spec truncate_channel(
  String.t(),
  String.t(),
  ExStreamClient.Model.TruncateChannelRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.TruncateChannelResponse.t()} | {:error, any()}

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 \\ [])

@spec update_channel(
  String.t(),
  String.t(),
  ExStreamClient.Model.UpdateChannelRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.UpdateChannelResponse.t()} | {:error, any()}

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 \\ [])

@spec update_channel_partial(
  String.t(),
  String.t(),
  ExStreamClient.Model.UpdateChannelPartialRequest.t(),
  [{:client, module()}]
) ::
  {:ok, ExStreamClient.Model.UpdateChannelPartialResponse.t()} | {:error, any()}

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(),
  client: module(),
  user_id: String.t()
) ::
  {:ok, ExStreamClient.Model.UpdateMemberPartialResponse.t()} | {:error, any()}

Required Arguments:

Optional Arguments:

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

@spec upload_file(
  String.t(),
  String.t(),
  ExStreamClient.Model.FileUploadRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.FileUploadResponse.t()} | {:error, any()}

Uploads file

Required Arguments:

Optional Arguments:

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

@spec upload_image(
  String.t(),
  String.t(),
  ExStreamClient.Model.ImageUploadRequest.t(),
  [
    {:client, module()}
  ]
) :: {:ok, ExStreamClient.Model.ImageUploadResponse.t()} | {:error, any()}

Uploads image

Required Arguments:

Optional Arguments: