View Source Teiserver.Communication.MatchMessageLib (Teiserver v0.0.4)
Library of match_message related functions.
Summary
Functions
Returns an %Ecto.Changeset{}
for tracking match_message changes.
Creates a match_message.
Deletes a match_message.
Gets a single match_message.
Gets a single match_message.
Returns the list of match_messages.
Returns a list of messages from a match ordered as the newest first.
Wraps send_match_message/3
to send a message when in the lobby instead of the match
- Creates a match message
- If successful generate a pubsub message
## Examples
Joins your process to match messages
Removes your process from a match's messages
Updates a match_message.
Functions
@spec change_match_message(Teiserver.Communication.MatchMessage.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking match_message changes.
Examples
iex> change_match_message(match_message)
%Ecto.Changeset{data: %MatchMessage{}}
@spec create_match_message(map()) :: {:ok, Teiserver.Communication.MatchMessage.t()} | {:error, Ecto.Changeset.t()}
Creates a match_message.
Examples
iex> create_match_message(%{field: value})
{:ok, %MatchMessage{}}
iex> create_match_message(%{field: bad_value})
{:error, %Ecto.Changeset{}}
@spec delete_match_message(Teiserver.Communication.MatchMessage.t()) :: {:ok, Teiserver.Communication.MatchMessage.t()} | {:error, Ecto.Changeset.t()}
Deletes a match_message.
Examples
iex> delete_match_message(match_message)
{:ok, %MatchMessage{}}
iex> delete_match_message(match_message)
{:error, %Ecto.Changeset{}}
@spec get_match_message( Teiserver.Communication.MatchMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.MatchMessage.t() | nil
Gets a single match_message.
Returns nil if the MatchMessage does not exist.
Examples
iex> get_match_message("uuid")
%MatchMessage{}
iex> get_match_message("uuid")
nil
@spec get_match_message!( Teiserver.Communication.MatchMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.MatchMessage.t()
Gets a single match_message.
Raises Ecto.NoResultsError
if the MatchMessage does not exist.
Examples
iex> get_match_message!("uuid")
%MatchMessage{}
iex> get_match_message!("uuid")
** (Ecto.NoResultsError)
Returns the list of match_messages.
Examples
iex> list_match_messages()
[%MatchMessage{}, ...]
@spec list_recent_match_messages(Teiserver.Game.Match.id(), non_neg_integer()) :: [ Teiserver.Communication.MatchMessage.t() ]
Returns a list of messages from a match ordered as the newest first.
In the event of there being ne messages for a match of that ID the function will return an empty list.
Examples
iex> list_recent_match_messages("uuid")
[%MatchMessage{}, ...]
iex> list_recent_match_messages("uuid")
[]
@spec send_lobby_message(Teiserver.user_id(), Lobby.id(), String.t()) :: {:ok, Teiserver.Communication.MatchMessage.t()} | {:error, Ecto.Changeset.t()}
Wraps send_match_message/3
to send a message when in the lobby instead of the match
- Creates a match message
- If successful generate a pubsub message for both the Match and the Lobby
## Examples
iex> send_lobby_message("uuid", "uuid", "Message content")
{:ok, %MatchMessage{}}
iex> send_lobby_message("uuid", "uuid", "Message content")
{:error, %Ecto.Changeset{}}
@spec send_match_message( Teiserver.user_id(), Teiserver.Game.Match.id(), String.t(), map() ) :: {:ok, Teiserver.Communication.MatchMessage.t()} | {:error, Ecto.Changeset.t()}
- Creates a match message
- If successful generate a pubsub message
## Examples
iex> send_match_message("uuid", "uuid", "Message content")
{:ok, %MatchMessage{}}
iex> send_match_message("uuid", "uuid", "Message content")
{:error, %Ecto.Changeset{}}
@spec subscribe_to_match_messages( Teiserver.Game.Match.id() | Teiserver.Game.Match.t() ) :: :ok
Joins your process to match messages
@spec unsubscribe_from_match_messages( Teiserver.Game.Match.id() | Teiserver.Game.Match.t() ) :: :ok
Removes your process from a match's messages
@spec update_match_message(Teiserver.Communication.MatchMessage.t(), map()) :: {:ok, Teiserver.Communication.MatchMessage.t()} | {:error, Ecto.Changeset.t()}
Updates a match_message.
Examples
iex> update_match_message(match_message, %{field: new_value})
{:ok, %MatchMessage{}}
iex> update_match_message(match_message, %{field: bad_value})
{:error, %Ecto.Changeset{}}