function VersionByRel::getRevisionId

Same name and namespace in other branches
  1. 9 core/modules/jsonapi/src/Revisions/VersionByRel.php \Drupal\jsonapi\Revisions\VersionByRel::getRevisionId()
  2. 8.9.x core/modules/jsonapi/src/Revisions/VersionByRel.php \Drupal\jsonapi\Revisions\VersionByRel::getRevisionId()
  3. 11.x core/modules/jsonapi/src/Revisions/VersionByRel.php \Drupal\jsonapi\Revisions\VersionByRel::getRevisionId()

Gets the revision ID.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity.

string $version_argument: A value used to derive a revision ID for the given entity.

Return value

int The revision ID.

Overrides NegotiatorBase::getRevisionId

File

core/modules/jsonapi/src/Revisions/VersionByRel.php, line 47

Class

VersionByRel
Revision ID implementation for the default or latest revisions.

Namespace

Drupal\jsonapi\Revisions

Code

protected function getRevisionId(EntityInterface $entity, $version_argument) {
  assert($entity instanceof RevisionableInterface);
  switch ($version_argument) {
    case static::WORKING_COPY:
      /** @var \Drupal\Core\Entity\RevisionableStorageInterface $entity_storage */
      $entity_storage = $this->entityTypeManager
        ->getStorage($entity->getEntityTypeId());
      return static::ensureVersionExists($entity_storage->getLatestRevisionId($entity->id()));
    case static::LATEST_VERSION:
      // The already loaded revision will be the latest version by default.
      // @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage::buildQuery().
      return $entity->getLoadedRevisionId();
    default:
      $message = sprintf('The version specifier must be either `%s` or `%s`, `%s` given.', static::LATEST_VERSION, static::WORKING_COPY, $version_argument);
      throw new InvalidVersionIdentifierException($message);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.