Glific v0.3.1 Glific.Messages View Source

The Messages context.

Link to this section Summary

Functions

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

Returns an %Ecto.Changeset{} for tracking message media changes.

Return the count of messages, using the same filter as list_messages

Return the count of messages, using the same filter as list_messages

Send a hsm template message to the specific contact.

Send a session template to the specific contact. This is typically used in automation

Creates a message.

Creates a message media.

Deletes a message.

Deletes a message media.

Gets a single message.

Gets a single message media.

Go back in history and see the past few messages sent. ensure we are not sending the same message a few too many times

Given a list of message ids builds a conversation list with most recent conversations at the beginning of the list

Returns the list of filtered messages.

Returns the list of message media.

Check if the tag is present in message

Updates a message.

Link to this section Functions

Link to this function

change_message(message, attrs \\ %{})

View Source

Specs

change_message(Glific.Messages.Message.t(), map()) :: Ecto.Changeset.t()

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

Examples

iex> change_message(message)
%Ecto.Changeset{data: %Message{}}
Link to this function

change_message_media(message_media, attrs \\ %{})

View Source

Specs

change_message_media(Glific.Messages.MessageMedia.t(), map()) ::
  Ecto.Changeset.t()

Returns an %Ecto.Changeset{} for tracking message media changes.

Examples

iex> change_message_media(message_media)
%Ecto.Changeset{data: %MessageMedia{}}

Specs

count_messages(map()) :: integer()

Return the count of messages, using the same filter as list_messages

Link to this function

count_messages_media(args \\ %{})

View Source

Specs

count_messages_media(map()) :: integer()

Return the count of messages, using the same filter as list_messages

Link to this function

create_and_send_hsm_message(template_id, receiver_id, parameters)

View Source

Specs

create_and_send_hsm_message(integer(), integer(), [String.t()]) ::
  {:ok, Glific.Messages.Message.t()} | {:error, String.t()}

Send a hsm template message to the specific contact.

Link to this function

create_and_send_session_template(template_id, receiver_id)

View Source

Specs

create_and_send_session_template(String.t(), integer()) ::
  {:ok, Glific.Messages.Message.t()}
create_and_send_session_template(integer(), integer()) ::
  {:ok, Glific.Messages.Message.t()}
create_and_send_session_template(
  Glific.Templates.SessionTemplate.t() | map(),
  map()
) :: {:ok, Glific.Messages.Message.t()}

Send a session template to the specific contact. This is typically used in automation

Specs

create_message(map()) ::
  {:ok, Glific.Messages.Message.t()} | {:error, Ecto.Changeset.t()}

Creates a message.

Examples

iex> create_message(%{field: value})
{:ok, %Message{}}

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

create_message_media(attrs \\ %{})

View Source

Specs

create_message_media(map()) ::
  {:ok, Glific.Messages.MessageMedia.t()} | {:error, Ecto.Changeset.t()}

Creates a message media.

Examples

iex> create_message_media(%{field: value})
{:ok, %MessageMedia{}}

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

Specs

delete_message(Glific.Messages.Message.t()) ::
  {:ok, Glific.Messages.Message.t()} | {:error, Ecto.Changeset.t()}

Deletes a message.

Examples

iex> delete_message(message)
{:ok, %Message{}}

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

delete_message_media(message_media)

View Source

Specs

delete_message_media(Glific.Messages.MessageMedia.t()) ::
  {:ok, Glific.Messages.MessageMedia.t()} | {:error, Ecto.Changeset.t()}

Deletes a message media.

Examples

iex> delete_message_media(message_media)
{:ok, %MessageMedia{}}

iex> delete_message_media(message_media)
{:error, %Ecto.Changeset{}}

Specs

get_message!(integer()) :: Glific.Messages.Message.t()

Gets a single message.

Raises Ecto.NoResultsError if the Message does not exist.

Examples

iex> get_message!(123)
%Message{}

iex> get_message!(456)
** (Ecto.NoResultsError)

Specs

get_message_media!(integer()) :: Glific.Messages.MessageMedia.t()

Gets a single message media.

Raises Ecto.NoResultsError if the Message media does not exist.

Examples

iex> get_message_media!(123)
%MessageMedia{}

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

is_message_loop?(message, past_messages \\ 7, past_count \\ 5, go_back \\ 1)

View Source

Specs

is_message_loop?(map(), integer(), integer(), integer()) :: integer()

Go back in history and see the past few messages sent. ensure we are not sending the same message a few too many times

Link to this function

list_conversations(args, count \\ false)

View Source

Specs

list_conversations(map(), boolean()) ::
  [Glific.Conversations.Conversation.t()] | integer()

Given a list of message ids builds a conversation list with most recent conversations at the beginning of the list

Specs

list_messages(map()) :: [Glific.Messages.Message.t()]

Returns the list of filtered messages.

Examples

iex> list_messages(map())
[%Message{}, ...]
Link to this function

list_messages_media(args \\ %{})

View Source

Specs

list_messages_media(map()) :: [Glific.Messages.MessageMedia.t()]

Returns the list of message media.

Examples

iex> list_messages_media(map())
[%MessageMedia{}, ...]
Link to this function

tag_in_message?(message, tag_id)

View Source

Specs

tag_in_message?(Glific.Messages.Message.t(), integer()) :: boolean()

Check if the tag is present in message

Link to this function

update_message(message, attrs)

View Source

Specs

update_message(Glific.Messages.Message.t(), map()) ::
  {:ok, Glific.Messages.Message.t()} | {:error, Ecto.Changeset.t()}

Updates a message.

Examples

iex> update_message(message, %{field: new_value})
{:ok, %Message{}}

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

update_message_media(message_media, attrs)

View Source

Specs

update_message_media(Glific.Messages.MessageMedia.t(), map()) ::
  {:ok, Glific.Messages.MessageMedia.t()} | {:error, Ecto.Changeset.t()}

Updates a message media.

Examples

iex> update_message_media(message_media, %{field: new_value})
{:ok, %MessageMedia{}}

iex> update_message_media(message_media, %{field: bad_value})
{:error, %Ecto.Changeset{}}