You are here

class DataProviderComment in RESTful 7.2

Hierarchy

Expanded class hierarchy of DataProviderComment

File

modules/restful_example/src/Plugin/resource/comment/DataProviderComment.php, line 13
Contains \Drupal\restful_example\Plugin\resource\comment\DataProviderComment.

Namespace

Drupal\restful_example\Plugin\resource\comment
View source
class DataProviderComment extends DataProviderEntity implements DataProviderInterface {

  /**
   * Overrides DataProviderEntity::setPropertyValues().
   *
   * Set nid and node type to a comment.
   *
   * Note that to create a comment with 'post comments' permission, apply a
   * patch on https://www.drupal.org/node/2236229
   */
  protected function setPropertyValues(\EntityDrupalWrapper $wrapper, $object, $replace = FALSE) {
    $comment = $wrapper
      ->value();
    if (empty($comment->nid) && !empty($object['nid'])) {

      // Comment nid must be set manually, as the nid property setter requires
      // 'administer comments' permission.
      $comment->nid = $object['nid'];
      unset($object['nid']);

      // Make sure we have a bundle name.
      $node = node_load($comment->nid);
      $comment->node_type = 'comment_node_' . $node->type;
    }
    parent::setPropertyValues($wrapper, $object, $replace);
  }

  /**
   * Overrides DataProviderEntity::getQueryForList().
   *
   * Expose only published comments.
   */
  public function getQueryForList() {
    $query = parent::getQueryForList();
    $query
      ->propertyCondition('status', COMMENT_PUBLISHED);
    return $query;
  }

  /**
   * Overrides DataProviderEntity::getQueryCount().
   *
   * Only count published comments.
   */
  public function getQueryCount() {
    $query = parent::getQueryCount();
    $query
      ->propertyCondition('status', COMMENT_PUBLISHED);
    return $query;
  }

  /**
   * {@inheritdoc}
   */
  public function entityPreSave(\EntityDrupalWrapper $wrapper) {
    $comment = $wrapper
      ->value();
    if (!empty($comment->cid)) {

      // Comment is already saved.
      return;
    }
    $comment->uid = $this
      ->getAccount()->uid;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DataProvider::$account protected property The account authenticated from the request for entity access checks.
DataProvider::$fieldDefinitions protected property The field definitions.
DataProvider::$langcode protected property Determines the language of the items that should be returned.
DataProvider::$metadata protected property Array of metadata. Use this as a mean to pass info to the render layer.
DataProvider::$options protected property User defined options.
DataProvider::$pluginId protected property Resource identifier.
DataProvider::$range protected property Determines the number of items that should be returned when viewing lists.
DataProvider::$request protected property The request
DataProvider::$resourcePath protected property The resource path.
DataProvider::addOptions public function Adds the options in the provided array to the data provider options. Overrides DataProviderInterface::addOptions
DataProvider::discover public function Return the discovery information for the given entity. Overrides DataProviderInterface::discover
DataProvider::getAccount public function Gets the authenticated account. Overrides DataProviderInterface::getAccount
DataProvider::getLangCode public function Get the language code. Overrides DataProviderInterface::getLangCode
DataProvider::getLanguage protected static function Gets the global language.
DataProvider::getMetadata public function Returns the metadata collection. Overrides DataProviderInterface::getMetadata
DataProvider::getOptions public function Gets the data provider options. Overrides DataProviderInterface::getOptions
DataProvider::getRange public function Gets the range. Overrides DataProviderInterface::getRange
DataProvider::getRequest public function Gets the request. Overrides DataProviderInterface::getRequest
DataProvider::getResourcePath public function Get the resource path. Overrides DataProviderInterface::getResourcePath
DataProvider::index public function List operation. Overrides CrudInterface::index 2
DataProvider::initResourceFieldCollection protected function Initialize the empty resource field collection to bundle the output.
DataProvider::isNestedField public static function Checks if the passed in string is a dot-nested field. Overrides DataProviderInterface::isNestedField
DataProvider::methodAccess public function Checks if the provided field can be used with the current method. Overrides DataProviderInterface::methodAccess
DataProvider::parseRequestForListFilter protected function Filter the query for list.
DataProvider::parseRequestForListPagination protected function Parses the request object to get the pagination options.
DataProvider::parseRequestForListSort protected function Parses the request to get the sorting options.
DataProvider::processFilterInput public static function Processes the input for a filter and adds the appropriate defaults. Overrides DataProviderInterface::processFilterInput
DataProvider::setAccount public function Sets the authenticated account. Overrides DataProviderInterface::setAccount
DataProvider::setHttpHeader protected function Sets an HTTP header.
DataProvider::setLangCode public function Sets the language code. Overrides DataProviderInterface::setLangCode
DataProvider::setOptions public function Sets the options. Overrides DataProviderInterface::setOptions
DataProvider::setRange public function Sets the range. Overrides DataProviderInterface::setRange
DataProvider::setRequest public function Sets the request. Overrides DataProviderInterface::setRequest
DataProvider::setResourcePath public function Set the resource path. Overrides DataProviderInterface::setResourcePath
DataProviderComment::entityPreSave public function Allow manipulating the entity before it is saved. Overrides DataProviderEntity::entityPreSave
DataProviderComment::getQueryCount public function Overrides DataProviderEntity::getQueryCount(). Overrides DataProviderEntity::getQueryCount
DataProviderComment::getQueryForList public function Overrides DataProviderEntity::getQueryForList(). Overrides DataProviderEntity::getQueryForList
DataProviderComment::setPropertyValues protected function Overrides DataProviderEntity::setPropertyValues(). Overrides DataProviderEntity::setPropertyValues
DataProviderEntity::$bundles protected property The entity bundles.
DataProviderEntity::$EFQClass protected property The entity field query class.
DataProviderEntity::$entityType protected property The entity type.
DataProviderEntity::addExtraInfoToQuery protected function Adds query tags and metadata to the EntityFieldQuery. Overrides DataProvider::addExtraInfoToQuery
DataProviderEntity::addNestedFilter protected function Add relational filters to EFQ.
DataProviderEntity::alterFilterQuery protected function Placeholder method to alter the filters.
DataProviderEntity::alterSortQuery protected function Placeholder method to alter the filters.
DataProviderEntity::canonicalPath public function Generates the canonical path for a given path. Overrides DataProvider::canonicalPath
DataProviderEntity::checkEntityAccess protected function Check access to CRUD an entity. 1
DataProviderEntity::checkPropertyAccess protected static function Checks if the data provider user has access to the property. 1
DataProviderEntity::count public function Counts the total results for the index call. Overrides CrudInterface::count
DataProviderEntity::create public function Create operation. Overrides CrudInterface::create 1
DataProviderEntity::defaultSortInfo protected function Defines default sort fields if none are provided via the request URL.
DataProviderEntity::EFQObject public function Gets a EFQ object. Overrides DataProviderEntityInterface::EFQObject
DataProviderEntity::entityValidate public function Validate an entity before it is saved. Overrides DataProviderEntityInterface::entityValidate
DataProviderEntity::getCacheFragments public function Gets the entity context. Overrides DataProvider::getCacheFragments
DataProviderEntity::getColumnFromProperty protected function Get the DB column name from a property.
DataProviderEntity::getEntityFieldQuery protected function Initialize an EntityFieldQuery (or extending class).
DataProviderEntity::getEntityIdByFieldId protected function Get the entity ID based on the ID provided in the request.
DataProviderEntity::getEntityInfo protected function Get the entity info for the current entity the endpoint handling.
DataProviderEntity::getFieldsFromPublicNameItem protected function Get the (reference) field information for a single item.
DataProviderEntity::getFieldsInfoFromPublicName protected function Transform the nested public name into an array of Drupal field information.
DataProviderEntity::getIndexIds public function Returns the ID to render for the current index GET request. Overrides DataProviderInterface::getIndexIds
DataProviderEntity::getReferencedId protected function Get referenced ID.
DataProviderEntity::getReferencedIds protected function Get reference IDs for multiple values.
DataProviderEntity::initDataInterpreter protected function Get the data interpreter. Overrides DataProvider::initDataInterpreter
DataProviderEntity::isMultipleValuOperator protected static function Checks if the operator accepts multiple values.
DataProviderEntity::isValidConjunctionForFilter protected static function Overrides DataProvider::isValidConjunctionForFilter(). Overrides DataProvider::isValidConjunctionForFilter
DataProviderEntity::isValidEntity protected function Determine if an entity is valid, and accessible.
DataProviderEntity::isValidOperatorsForFilter protected static function Overrides DataProvider::isValidOperatorsForFilter(). Overrides DataProvider::isValidOperatorsForFilter
DataProviderEntity::queryForListFilter protected function Filter the query for list.
DataProviderEntity::queryForListPagination protected function Set correct page (i.e. range) for the query for list.
DataProviderEntity::queryForListSort protected function Sort the query for list.
DataProviderEntity::remove public function Delete operation. Overrides CrudInterface::remove
DataProviderEntity::update public function Update operation. Overrides CrudInterface::update
DataProviderEntity::validateBody protected function Validates the body payload object for entities.
DataProviderEntity::validateFilters protected function Validates the query parameters.
DataProviderEntity::view public function Read operation. Overrides CrudInterface::view
DataProviderEntity::viewMultiple public function Read operation. Overrides CrudInterface::viewMultiple
DataProviderEntity::__construct public function Constructor. Overrides DataProvider::__construct 1