Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / content_moderation / src / RevisionTracker.php
diff --git a/web/core/modules/content_moderation/src/RevisionTracker.php b/web/core/modules/content_moderation/src/RevisionTracker.php
deleted file mode 100644 (file)
index 2011237..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-namespace Drupal\content_moderation;
-
-use Drupal\Core\Database\Connection;
-use Drupal\Core\Database\DatabaseExceptionWrapper;
-use Drupal\Core\Database\SchemaObjectExistsException;
-
-/**
- * Tracks metadata about revisions across entities.
- */
-class RevisionTracker implements RevisionTrackerInterface {
-
-  /**
-   * The name of the SQL table we use for tracking.
-   *
-   * @var string
-   */
-  protected $tableName;
-
-  /**
-   * The database connection.
-   *
-   * @var \Drupal\Core\Database\Connection
-   */
-  protected $connection;
-
-  /**
-   * Constructs a new RevisionTracker.
-   *
-   * @param \Drupal\Core\Database\Connection $connection
-   *   The database connection.
-   * @param string $table
-   *   The table that should be used for tracking.
-   */
-  public function __construct(Connection $connection, $table = 'content_revision_tracker') {
-    $this->connection = $connection;
-    $this->tableName = $table;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setLatestRevision($entity_type_id, $entity_id, $langcode, $revision_id) {
-    try {
-      $this->recordLatestRevision($entity_type_id, $entity_id, $langcode, $revision_id);
-    }
-    catch (DatabaseExceptionWrapper $e) {
-      $this->ensureTableExists();
-      $this->recordLatestRevision($entity_type_id, $entity_id, $langcode, $revision_id);
-    }
-
-    return $this;
-  }
-
-  /**
-   * Records the latest revision of a given entity.
-   *
-   * @param string $entity_type_id
-   *   The machine name of the type of entity.
-   * @param string $entity_id
-   *   The Entity ID in question.
-   * @param string $langcode
-   *   The langcode of the revision we're saving. Each language has its own
-   *   effective tree of entity revisions, so in different languages
-   *   different revisions will be "latest".
-   * @param int $revision_id
-   *   The revision ID that is now the latest revision.
-   *
-   * @return int
-   *   One of the valid returns from a merge query's execute method.
-   */
-  protected function recordLatestRevision($entity_type_id, $entity_id, $langcode, $revision_id) {
-    return $this->connection->merge($this->tableName)
-      ->keys([
-        'entity_type' => $entity_type_id,
-        'entity_id' => $entity_id,
-        'langcode' => $langcode,
-      ])
-      ->fields([
-        'revision_id' => $revision_id,
-      ])
-      ->execute();
-  }
-
-  /**
-   * Checks if the table exists and create it if not.
-   *
-   * @return bool
-   *   TRUE if the table was created, FALSE otherwise.
-   */
-  protected function ensureTableExists() {
-    try {
-      if (!$this->connection->schema()->tableExists($this->tableName)) {
-        $this->connection->schema()->createTable($this->tableName, $this->schemaDefinition());
-        return TRUE;
-      }
-    }
-    catch (SchemaObjectExistsException $e) {
-      // If another process has already created the table, attempting to
-      // recreate it will throw an exception. In this case just catch the
-      // exception and do nothing.
-      return TRUE;
-    }
-    return FALSE;
-  }
-
-  /**
-   * Defines the schema for the tracker table.
-   *
-   * @return array
-   *   The schema API definition for the SQL storage table.
-   */
-  protected function schemaDefinition() {
-    $schema = [
-      'description' => 'Tracks the latest revision for any entity',
-      'fields' => [
-        'entity_type' => [
-          'description' => 'The entity type',
-          'type' => 'varchar_ascii',
-          'length' => 255,
-          'not null' => TRUE,
-          'default' => '',
-        ],
-        'entity_id' => [
-          'description' => 'The entity ID',
-          'type' => 'int',
-          'length' => 255,
-          'not null' => TRUE,
-          'default' => 0,
-        ],
-        'langcode' => [
-          'description' => 'The language of the entity revision',
-          'type' => 'varchar',
-          'length' => 12,
-          'not null' => TRUE,
-          'default' => '',
-        ],
-        'revision_id' => [
-          'description' => 'The latest revision ID for this entity',
-          'type' => 'int',
-          'not null' => TRUE,
-          'default' => 0,
-        ],
-      ],
-      'primary key' => ['entity_type', 'entity_id', 'langcode'],
-    ];
-
-    return $schema;
-  }
-
-}