View Source Teiserver.Communication.RoomMessageLib (Teiserver v0.0.4)
Library of room_message related functions.
Summary
Functions
Returns an %Ecto.Changeset{}
for tracking room_message changes.
Creates a room_message.
Deletes a room_message.
Gets a single room_message.
Gets a single room_message.
Returns a list of messages from a room ordered as the newest first.
Returns the list of room_messages.
- Creates a room message
- If successful generate a pubsub message
## Examples
Joins your process to room messages
Removes your process from a room's messages
Updates a room_message.
Functions
@spec change_room_message(Teiserver.Communication.RoomMessage.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking room_message changes.
Examples
iex> change_room_message(room_message)
%Ecto.Changeset{data: %RoomMessage{}}
@spec create_room_message(map()) :: {:ok, Teiserver.Communication.RoomMessage.t()} | {:error, Ecto.Changeset.t()}
Creates a room_message.
Examples
iex> create_room_message(%{field: value})
{:ok, %RoomMessage{}}
iex> create_room_message(%{field: bad_value})
{:error, %Ecto.Changeset{}}
@spec delete_room_message(Teiserver.Communication.RoomMessage.t()) :: {:ok, Teiserver.Communication.RoomMessage.t()} | {:error, Ecto.Changeset.t()}
Deletes a room_message.
Examples
iex> delete_room_message(room_message)
{:ok, %RoomMessage{}}
iex> delete_room_message(room_message)
{:error, %Ecto.Changeset{}}
@spec get_room_message( Teiserver.Communication.RoomMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.RoomMessage.t() | nil
Gets a single room_message.
Returns nil if the RoomMessage does not exist.
Examples
iex> get_room_message(123)
%RoomMessage{}
iex> get_room_message(456)
nil
@spec get_room_message!( Teiserver.Communication.RoomMessage.id(), Teiserver.query_args() ) :: Teiserver.Communication.RoomMessage.t()
Gets a single room_message.
Raises Ecto.NoResultsError
if the RoomMessage does not exist.
Examples
iex> get_room_message!(123)
%RoomMessage{}
iex> get_room_message!(456)
** (Ecto.NoResultsError)
@spec list_recent_room_messages(Teiserver.Communication.Room.id(), non_neg_integer()) :: [ Teiserver.Communication.RoomMessage.t() ]
Returns a list of messages from a room ordered as the newest first.
In the event of there being ne messages for a room of that ID the function will return an empty list.
Examples
iex> list_recent_room_messages(123)
[%RoomMessage{}, ...]
iex> list_recent_room_messages(456)
[]
Returns the list of room_messages.
Examples
iex> list_room_messages()
[%RoomMessage{}, ...]
@spec send_room_message( Teiserver.user_id(), Teiserver.Communication.Room.id(), String.t(), map() ) :: {:ok, Teiserver.Communication.RoomMessage.t()} | {:error, Ecto.Changeset.t()}
- Creates a room message
- If successful generate a pubsub message
## Examples
iex> send_room_message(123, 123, "Message content")
{:ok, %RoomMessage{}}
iex> send_room_message(456, 456, "Message content")
{:error, %Ecto.Changeset{}}
@spec subscribe_to_room_messages( Teiserver.Communication.Room.id() | Teiserver.Communication.Room.t() ) :: :ok
Joins your process to room messages
@spec unsubscribe_from_room_messages( Teiserver.Communication.Room.id() | Teiserver.Communication.Room.t() ) :: :ok
Removes your process from a room's messages
@spec update_room_message(Teiserver.Communication.RoomMessage.t(), map()) :: {:ok, Teiserver.Communication.RoomMessage.t()} | {:error, Ecto.Changeset.t()}
Updates a room_message.
Examples
iex> update_room_message(room_message, %{field: new_value})
{:ok, %RoomMessage{}}
iex> update_room_message(room_message, %{field: bad_value})
{:error, %Ecto.Changeset{}}