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.
Gets a single direct_message.
Gets a single 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
Updates a direct_message.
Functions
@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{}}
@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{}}
@spec delete_direct_message(Teiserver.Communication.DirectMessage.t()) :: {:ok, Teiserver.Communication.DirectMessage.t()} | {:error, Ecto.Changeset.t()}
Deletes a direct_message.
Examples
iex> delete_direct_message(direct_message)
{:ok, %DirectMessage{}}
iex> delete_direct_message(direct_message)
{:error, %Ecto.Changeset{}}
@spec get_direct_message( Teiserver.Communication.DirectMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.DirectMessage.t() | nil
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
@spec get_direct_message!( Teiserver.Communication.DirectMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.DirectMessage.t()
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)
@spec list_direct_messages(Teiserver.query_args()) :: [ Teiserver.Communication.DirectMessage.t() ]
Returns the list of direct_messages.
Examples
iex> list_direct_messages()
[%DirectMessage{}, ...]
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{}, ...]
@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{}, ...]
@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{}, ...]
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{}, ...]
@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{}, ...]
@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{}}
@spec subscribe_to_user_messaging( Teiserver.Account.User.id() | Teiserver.Account.User.t() ) :: :ok
Joins your process to match messages
@spec unsubscribe_from_user_messaging( Teiserver.Account.User.id() | Teiserver.Account.User.t() ) :: :ok
Removes your process from a match's messages
@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{}}