View Source Teiserver.Communication.DirectMessageLib (Teiserver v0.0.4)

Library of direct_message related functions.

Summary

Functions

Returns an %Ecto.Changeset{} for tracking direct_message changes.

Creates a direct_message.

Deletes a direct_message.

Returns the list of direct_messages.

Returns the list of direct_messages sent between specific users.

Returns the list of direct_messages for a specific user (to and from).

Returns the list of direct_messages sent from a specific user.

Returns the list of direct_messages sent from a specific user to a specific user.

Returns the list of direct_messages sent to a specific user.

  • Creates a direct message
  • If successful generate a pubsub message

Examples

iex> send_direct_message(123, 124, "Message content")
{:ok, %DirectMessage{}}

iex> send_direct_message(456, 457, "Message content")
{:error, %Ecto.Changeset{}}

Joins your process to match messages

Removes your process from a match's messages

Functions

Link to this function

change_direct_message(direct_message, attrs \\ %{})

View Source
@spec change_direct_message(Teiserver.Communication.DirectMessage.t(), map()) ::
  Ecto.Changeset.t()

Returns an %Ecto.Changeset{} for tracking direct_message changes.

Examples

iex> change_direct_message(direct_message)
%Ecto.Changeset{data: %DirectMessage{}}
Link to this function

create_direct_message(attrs \\ %{})

View Source
@spec create_direct_message(map()) ::
  {:ok, Teiserver.Communication.DirectMessage.t()}
  | {:error, Ecto.Changeset.t()}

Creates a direct_message.

Examples

iex> create_direct_message(%{field: value})
{:ok, %DirectMessage{}}

iex> create_direct_message(%{field: bad_value})
{:error, %Ecto.Changeset{}}
Link to this function

delete_direct_message(direct_message)

View Source

Deletes a direct_message.

Examples

iex> delete_direct_message(direct_message)
{:ok, %DirectMessage{}}

iex> delete_direct_message(direct_message)
{:error, %Ecto.Changeset{}}
Link to this function

get_direct_message(direct_message_id, query_args \\ [])

View Source

Gets a single direct_message.

Returns nil if the DirectMessage does not exist.

Examples

iex> get_direct_message(123)
%DirectMessage{}

iex> get_direct_message(456)
nil
Link to this function

get_direct_message!(direct_message_id, query_args \\ [])

View Source

Gets a single direct_message.

Raises Ecto.NoResultsError if the DirectMessage does not exist.

Examples

iex> get_direct_message!(123)
%DirectMessage{}

iex> get_direct_message!(456)
** (Ecto.NoResultsError)
Link to this function

list_direct_messages(query_args \\ [])

View Source
@spec list_direct_messages(Teiserver.query_args()) :: [
  Teiserver.Communication.DirectMessage.t()
]

Returns the list of direct_messages.

Examples

iex> list_direct_messages()
[%DirectMessage{}, ...]
Link to this function

list_direct_messages_between_users(user_id1, user_id2, query_args \\ [])

View Source
@spec list_direct_messages_between_users(
  Teiserver.user_id(),
  Teiserver.user_id(),
  Teiserver.query_args()
) :: [Teiserver.Communication.DirectMessage.t()]

Returns the list of direct_messages sent between specific users.

Examples

iex> list_direct_messages_between_users(user1_id, user2_id)
[%DirectMessage{}, ...]

iex> list_direct_messages_between_users(user1_id, user2_id, limit: 10, order_by: ["Newest first"])
[%DirectMessage{}, ...]
Link to this function

list_direct_messages_for_user(user_id, query_args \\ [])

View Source
@spec list_direct_messages_for_user(Teiserver.user_id(), Teiserver.query_args()) :: [
  Teiserver.Communication.DirectMessage.t()
]

Returns the list of direct_messages for a specific user (to and from).

Examples

iex> list_direct_messages_for_user(user_id)
[%DirectMessage{}, ...]
Link to this function

list_direct_messages_from_user(user_id, query_args \\ [])

View Source
@spec list_direct_messages_from_user(Teiserver.user_id(), Teiserver.query_args()) :: [
  Teiserver.Communication.DirectMessage.t()
]

Returns the list of direct_messages sent from a specific user.

Examples

iex> list_direct_messages_from_user(user_id)
[%DirectMessage{}, ...]
Link to this function

list_direct_messages_from_user_to_user(sender_id, to_id, query_args \\ [])

View Source
@spec list_direct_messages_from_user_to_user(
  Teiserver.user_id(),
  Teiserver.user_id(),
  Teiserver.query_args()
) :: [Teiserver.Communication.DirectMessage.t()]

Returns the list of direct_messages sent from a specific user to a specific user.

Examples

iex> list_direct_messages_from_user_to_user(sender_id, to_id)
[%DirectMessage{}, ...]
Link to this function

list_direct_messages_to_user(user_id, query_args \\ [])

View Source
@spec list_direct_messages_to_user(Teiserver.user_id(), Teiserver.query_args()) :: [
  Teiserver.Communication.DirectMessage.t()
]

Returns the list of direct_messages sent to a specific user.

Examples

iex> list_direct_messages_to_user(user_id)
[%DirectMessage{}, ...]
Link to this function

send_direct_message(sender_id, to_id, content, attrs \\ %{})

View Source
@spec send_direct_message(Teiserver.user_id(), Room.id(), String.t(), map()) ::
  {:ok, RoomMessage.t()} | {:error, Ecto.Changeset.t()}
  • Creates a direct message
  • If successful generate a pubsub message

Examples

iex> send_direct_message(123, 124, "Message content")
{:ok, %DirectMessage{}}

iex> send_direct_message(456, 457, "Message content")
{:error, %Ecto.Changeset{}}
Link to this function

subscribe_to_user_messaging(user_or_user_id)

View Source
@spec subscribe_to_user_messaging(
  Teiserver.Account.User.id()
  | Teiserver.Account.User.t()
) :: :ok

Joins your process to match messages

Link to this function

unsubscribe_from_user_messaging(user_or_user_id)

View Source
@spec unsubscribe_from_user_messaging(
  Teiserver.Account.User.id()
  | Teiserver.Account.User.t()
) :: :ok

Removes your process from a match's messages

Link to this function

update_direct_message(direct_message, attrs)

View Source
@spec update_direct_message(Teiserver.Communication.DirectMessage.t(), map()) ::
  {:ok, Teiserver.Communication.DirectMessage.t()}
  | {:error, Ecto.Changeset.t()}

Updates a direct_message.

Examples

iex> update_direct_message(direct_message, %{field: new_value})
{:ok, %DirectMessage{}}

iex> update_direct_message(direct_message, %{field: bad_value})
{:error, %Ecto.Changeset{}}