You are here

interface PrivateMessageThreadInterface in Private Message 8

Same name and namespace in other branches
  1. 8.2 src/Entity/PrivateMessageThreadInterface.php \Drupal\private_message\Entity\PrivateMessageThreadInterface

Provides an interface defining a Private Message thread entity.

Hierarchy

Expanded class hierarchy of PrivateMessageThreadInterface

All classes that implement PrivateMessageThreadInterface

5 files declare their use of PrivateMessageThreadInterface
PrivateMessageForm.php in src/Form/PrivateMessageForm.php
PrivateMessageMailer.php in src/Service/PrivateMessageMailer.php
PrivateMessageMailerInterface.php in src/Service/PrivateMessageMailerInterface.php
PrivateMessageThreadManager.php in src/Service/PrivateMessageThreadManager.php
PrivateMessageThreadManagerInterface.php in src/Service/PrivateMessageThreadManagerInterface.php

File

src/Entity/PrivateMessageThreadInterface.php, line 13

Namespace

Drupal\private_message\Entity
View source
interface PrivateMessageThreadInterface extends ContentEntityInterface {

  /**
   * Add a member to the private message thread.
   *
   * @param \Drupal\user\AccountInterface $account
   *   The account to be set as a member of the private message thread.
   *
   * @return \Drupal\private_message\Entity\PrivateMessageInterface
   *   Returns the class itself to allow for chaining.
   */
  public function addMember(AccountInterface $account);

  /**
   * Add a member to the private message thread.
   *
   * @param int $id
   *   The ID of the account to be set as a member of the private message
   *   thread.
   *
   * @return \Drupal\private_message\Entity\PrivateMessageInterface
   *   Returns the class itself to allow for chaining.
   */
  public function addMemberById($id);

  /**
   * Retrieve the members of the private message thread.
   */
  public function getMembers();

  /**
   * Check if the user with the given ID is a member of the thread.
   *
   * @param int $id
   *   The User ID of the user to check.
   *
   * @return bool
   *   - TRUE if the user is a member of the thread
   *   - FALSE if they are not
   */
  public function isMember($id);

  /**
   * Add a private message to the list of messages in this thread.
   *
   * @param Drupal\private_message\Entity\PrivateMessageInterface $privateMessage
   *   The private message to be added to the thread.
   *
   * @return Drupal\private_message\Entity\PrivateMessageThread
   *   The private message thread.
   */
  public function addMessage(PrivateMessageInterface $privateMessage);

  /**
   * Add a private message by ID to the list of the messages in this thread.
   *
   * @param int $id
   *   The ID of the private message to be added to the thread.
   */
  public function addMessageById($id);

  /**
   * Retrieve all private messages attached to this thread.
   *
   * @return \Drupal\Core\Field\EntityReferenceFieldItemListInterface
   *   A list of private messages attached to this thread
   */
  public function getMessages();

  /**
   * Filter the list down to only the newest messages.
   *
   * Note that other messages will be loadable through AJAX.
   */
  public function filterNewestMessages();

  /**
   * Get the created timestamp of the newest private message in the thread.
   *
   * @return int
   *   The Unix timestamp of the newest message in the thread
   */
  public function getNewestMessageCreationTimestamp();

  /**
   * Add an an access time to the current thread for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose access time should be updated.
   */
  public function addLastAccessTime(AccountInterface $account);

  /**
   * Get the last access time object for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last access time should be retrieved.
   *
   * @return Drupal\private_message\Entity\PrivateMessageThreadAccessTimeInterface
   *   The PrivateMessagegThreadAccessTime object for the user's last access of
   *   the thread.
   */
  public function getLastAccessTime(AccountInterface $account);

  /**
   * Get the PrivateMessageThreadAccessTime entites referenced by this thread.
   *
   * @return \Drupal\private_message\Entity\PrivateMessageThreadAccessTime[]
   *   An array of PrivateMessageThreadAccessTime entities
   */
  public function getLastAccessTimes();

  /**
   * Get the last access timestamp for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last access time should be retrieved.
   *
   * @return int
   *   The timestamp at which the user last accessed the thread
   */
  public function getLastAccessTimestamp(AccountInterface $account);

  /**
   * Update the last access time for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last access time should be updated.
   */
  public function updateLastAccessTime(AccountInterface $account);

  /**
   * Add an a delete time to the current thread for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last delete time should be added.
   */
  public function addLastDeleteTime(AccountInterface $account);

  /**
   * Get the last delete time object for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last delete time should be retrieved.
   *
   * @return bool|\Drupal\private_message\Entity\PrivateMessageThreadDeleteTimeInterface
   *   - If the user has not deleted the thread, FALSE
   *   - If the user has deleted the thread, a
   *     PrivateMessageThreadAccessTimeInterface object
   */
  public function getLastDeleteTime(AccountInterface $account);

  /**
   * Get the last delete timestamp for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last delete time should be retrieved.
   *
   * @return int
   *   A UNIX timestamp indicating the last time the user marked the thread as
   *   deleted.
   */
  public function getLastDeleteTimestamp(AccountInterface $account);

  /**
   * Retrieve the last delete timestamps for all members of the thread.
   *
   * @return Drupal\private_message\Entity\PrivateMessageThreadAccessTime[]
   *   An array of PrivateMessageLastDeleteTime entities
   */
  public function getLastDeleteTimes();

  /**
   * Update the last delete time for the given user.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user whose last delete time should be updated.
   */
  public function updateLastDeleteTime(AccountInterface $account);

  /**
   * Perform a delete action on the private message thread.
   *
   * When this method is called, the following process happens:
   *   - If no user has been provided, the thread is deleted
   *     outright. Otherwise the following steps are taken.
   *   - The delete timestamp for the given user is updated
   *   - The created timestamp for the newest message in the
   *     thread is retrieved
   *   - The delete timestamps for all members of the thread
   *     are compared to the timestamp of the newest private message.
   *   - If no messages have been created after every member has deleted
   *     the thread, the entire thread is deleted from the system.
   */
  public function delete();

  /**
   * Filter messages in the thread deleted by the given account.
   *
   * Only messages created after the last time the user deleted the thread will
   * be shown. If they have never deleted the thread, all messages are returned.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user for whom private messages should be returned.
   *
   * @return Drupal\private_message\Entity\PrivateMessage[]
   *   An array of private messages
   */
  public function filterUserDeletedMessages(AccountInterface $account);

  /**
   * Clear cache tags related to private message thread entities.
   */
  public function clearCacheTags();

}

Members

Namesort descending Modifiers Type Description Overrides
AccessibleInterface::access public function Checks data value access. 9
CacheableDependencyInterface::getCacheContexts public function The cache contexts associated with this object. 34
CacheableDependencyInterface::getCacheMaxAge public function The maximum age for which this object may be cached. 34
CacheableDependencyInterface::getCacheTags public function The cache tags associated with this object. 27
EntityInterface::bundle public function Gets the bundle of the entity. 2
EntityInterface::create public static function Constructs a new entity object, without permanently saving it. 2
EntityInterface::createDuplicate public function Creates a duplicate of the entity. 2
EntityInterface::enforceIsNew public function Enforces an entity to be new. 2
EntityInterface::getCacheTagsToInvalidate public function Returns the cache tags that should be used to invalidate caches. 2
EntityInterface::getConfigDependencyKey public function Gets the key that is used to store configuration dependencies. 2
EntityInterface::getConfigDependencyName public function Gets the configuration dependency name. 2
EntityInterface::getConfigTarget public function Gets the configuration target identifier for the entity. 2
EntityInterface::getEntityType public function Gets the entity type definition. 2
EntityInterface::getEntityTypeId public function Gets the ID of the type of the entity. 2
EntityInterface::getOriginalId public function Gets the original ID. 2
EntityInterface::getTypedData public function Gets a typed data object for this entity object. 2
EntityInterface::hasLinkTemplate public function Indicates if a link template exists for a given key. 2
EntityInterface::id public function Gets the identifier. 2
EntityInterface::isNew public function Determines whether the entity is new. 2
EntityInterface::label public function Gets the label of the entity. 2
EntityInterface::language public function Gets the language of the entity. 2
EntityInterface::link Deprecated public function Deprecated way of generating a link to the entity. See toLink(). 2
EntityInterface::load public static function Loads an entity. 2
EntityInterface::loadMultiple public static function Loads one or more entities. 2
EntityInterface::postCreate public function Acts on a created entity before hooks are invoked. 2
EntityInterface::postDelete public static function Acts on deleted entities before the delete hook is invoked. 2
EntityInterface::postLoad public static function Acts on loaded entities. 3
EntityInterface::postSave public function Acts on a saved entity before the insert or update hook is invoked. 2
EntityInterface::preCreate public static function Changes the values of an entity before it is created. 2
EntityInterface::preDelete public static function Acts on entities before they are deleted and before hooks are invoked. 2
EntityInterface::preSave public function Acts on an entity before the presave hook is invoked. 2
EntityInterface::referencedEntities public function Gets a list of entities referenced by this entity. 2
EntityInterface::save public function Saves an entity permanently. 2
EntityInterface::setOriginalId public function Sets the original ID. 2
EntityInterface::toLink public function Generates the HTML for a link to this entity. 2
EntityInterface::toUrl public function Gets the URL object for the entity. 2
EntityInterface::uriRelationships public function Gets a list of URI relationships supported by this entity. 2
EntityInterface::url Deprecated public function Gets the public URL for this entity. 2
EntityInterface::urlInfo Deprecated public function Gets the URL object for the entity. 2
EntityInterface::uuid public function Gets the entity UUID (Universally Unique Identifier). 2
FieldableEntityInterface::baseFieldDefinitions public static function Provides base field definitions for an entity type. 2
FieldableEntityInterface::bundleFieldDefinitions public static function Provides field definitions for a specific bundle. 2
FieldableEntityInterface::get public function Gets a field item list. 1
FieldableEntityInterface::getFieldDefinition public function Gets the definition of a contained field. 1
FieldableEntityInterface::getFieldDefinitions public function Gets an array of field definitions of all contained fields. 1
FieldableEntityInterface::getFields public function Gets an array of all field item lists. 1
FieldableEntityInterface::getTranslatableFields public function Gets an array of field item lists for translatable fields. 1
FieldableEntityInterface::hasField public function Determines whether the entity has a field with the given name. 1
FieldableEntityInterface::isValidationRequired public function Checks whether entity validation is required before saving the entity. 1
FieldableEntityInterface::onChange public function Reacts to changes to a field. 1
FieldableEntityInterface::set public function Sets a field value. 1
FieldableEntityInterface::setValidationRequired public function Sets whether entity validation is required before saving the entity. 1
FieldableEntityInterface::toArray public function Gets an array of all field values. Overrides EntityInterface::toArray
FieldableEntityInterface::validate public function Validates the currently set values. 1
PrivateMessageThreadInterface::addLastAccessTime public function Add an an access time to the current thread for the given user. 1
PrivateMessageThreadInterface::addLastDeleteTime public function Add an a delete time to the current thread for the given user. 1
PrivateMessageThreadInterface::addMember public function Add a member to the private message thread. 1
PrivateMessageThreadInterface::addMemberById public function Add a member to the private message thread. 1
PrivateMessageThreadInterface::addMessage public function Add a private message to the list of messages in this thread. 1
PrivateMessageThreadInterface::addMessageById public function Add a private message by ID to the list of the messages in this thread. 1
PrivateMessageThreadInterface::clearCacheTags public function Clear cache tags related to private message thread entities. 1
PrivateMessageThreadInterface::delete public function Perform a delete action on the private message thread. Overrides EntityInterface::delete
PrivateMessageThreadInterface::filterNewestMessages public function Filter the list down to only the newest messages. 1
PrivateMessageThreadInterface::filterUserDeletedMessages public function Filter messages in the thread deleted by the given account. 1
PrivateMessageThreadInterface::getLastAccessTime public function Get the last access time object for the given user. 1
PrivateMessageThreadInterface::getLastAccessTimes public function Get the PrivateMessageThreadAccessTime entites referenced by this thread. 1
PrivateMessageThreadInterface::getLastAccessTimestamp public function Get the last access timestamp for the given user. 1
PrivateMessageThreadInterface::getLastDeleteTime public function Get the last delete time object for the given user. 1
PrivateMessageThreadInterface::getLastDeleteTimes public function Retrieve the last delete timestamps for all members of the thread. 1
PrivateMessageThreadInterface::getLastDeleteTimestamp public function Get the last delete timestamp for the given user. 1
PrivateMessageThreadInterface::getMembers public function Retrieve the members of the private message thread. 1
PrivateMessageThreadInterface::getMessages public function Retrieve all private messages attached to this thread. 1
PrivateMessageThreadInterface::getNewestMessageCreationTimestamp public function Get the created timestamp of the newest private message in the thread. 1
PrivateMessageThreadInterface::isMember public function Check if the user with the given ID is a member of the thread. 1
PrivateMessageThreadInterface::updateLastAccessTime public function Update the last access time for the given user. 1
PrivateMessageThreadInterface::updateLastDeleteTime public function Update the last delete time for the given user. 1
RefinableCacheableDependencyInterface::addCacheableDependency public function Adds a dependency on an object: merges its cacheability metadata. 1
RefinableCacheableDependencyInterface::addCacheContexts public function Adds cache contexts. 1
RefinableCacheableDependencyInterface::addCacheTags public function Adds cache tags. 1
RefinableCacheableDependencyInterface::mergeCacheMaxAge public function Merges the maximum age (in seconds) with the existing maximum age. 1
RevisionableInterface::getLoadedRevisionId public function Gets the loaded Revision ID of the entity. 1
RevisionableInterface::getRevisionId public function Gets the revision identifier of the entity. 1
RevisionableInterface::isDefaultRevision public function Checks if this entity is the default revision. 1
RevisionableInterface::isLatestRevision public function Checks if this entity is the latest revision. 1
RevisionableInterface::isNewRevision public function Determines whether a new revision should be created on save. 1
RevisionableInterface::preSaveRevision public function Acts on a revision before it gets saved. 1
RevisionableInterface::setNewRevision public function Enforces an entity to be saved as a new revision. 1
RevisionableInterface::updateLoadedRevisionId public function Updates the loaded Revision ID with the revision ID. 1
RevisionableInterface::wasDefaultRevision public function Checks whether the entity object was a default revision when it was saved. 1
SynchronizableInterface::isSyncing public function Returns whether this entity is being changed as part of a synchronization. 1
SynchronizableInterface::setSyncing public function Sets the status of the synchronization flag. 1
TranslatableInterface::addTranslation public function Adds a new translation to the translatable object. 1
TranslatableInterface::getTranslation public function Gets a translation of the data. 1
TranslatableInterface::getTranslationLanguages public function Returns the languages the data is translated to. 1
TranslatableInterface::getUntranslated public function Returns the translatable object referring to the original language. 1
TranslatableInterface::hasTranslation public function Checks there is a translation for the given language code. 1
TranslatableInterface::hasTranslationChanges public function Determines if the current translation of the entity has unsaved changes. 1
TranslatableInterface::isDefaultTranslation public function Checks whether the translation is the default one. 1
TranslatableInterface::isNewTranslation public function Checks whether the translation is new. 1
TranslatableInterface::isTranslatable public function Returns the translation support status. 1
TranslatableInterface::removeTranslation public function Removes the translation identified by the given language code. 1
TranslatableRevisionableInterface::isDefaultTranslationAffectedOnly public function Checks if untranslatable fields should affect only the default translation. 1
TranslatableRevisionableInterface::isLatestTranslationAffectedRevision public function Checks whether this is the latest revision affecting this translation. 1
TranslatableRevisionableInterface::isRevisionTranslationAffected public function Checks whether the current translation is affected by the current revision. 1
TranslatableRevisionableInterface::isRevisionTranslationAffectedEnforced public function Checks if the revision translation affected flag value has been enforced. 1
TranslatableRevisionableInterface::setRevisionTranslationAffected public function Marks the current revision translation as affected. 1
TranslatableRevisionableInterface::setRevisionTranslationAffectedEnforced public function Enforces the revision translation affected flag value. 1