public function MappedObject::pruneRevisions in Salesforce Suite 8.3
Same name and namespace in other branches
- 8.4 modules/salesforce_mapping/src/Entity/MappedObject.php \Drupal\salesforce_mapping\Entity\MappedObject::pruneRevisions()
- 5.0.x modules/salesforce_mapping/src/Entity/MappedObject.php \Drupal\salesforce_mapping\Entity\MappedObject::pruneRevisions()
Based on the Mapped Object revision limit, delete old revisions.
Return value
$this
Overrides MappedObjectInterface::pruneRevisions
1 call to MappedObject::pruneRevisions()
- MappedObject::postSave in modules/
salesforce_mapping/ src/ Entity/ MappedObject.php - Acts on a saved entity before the insert or update hook is invoked.
File
- modules/
salesforce_mapping/ src/ Entity/ MappedObject.php, line 133
Class
- MappedObject
- Defines a Salesforce Mapped Object entity class.
Namespace
Drupal\salesforce_mapping\EntityCode
public function pruneRevisions(EntityStorageInterface $storage) {
$limit = $this
->config('salesforce.settings')
->get('limit_mapped_object_revisions');
if ($limit <= 0) {
// Limit 0 means no limit.
return;
}
$count = $storage
->getQuery()
->allRevisions()
->condition('id', $this
->id())
->count()
->execute();
// Query for any revision id beyond the limit.
if ($count <= $limit) {
return;
}
$vids_to_delete = $storage
->getQuery()
->allRevisions()
->condition('id', $this
->id())
->range($limit, $count)
->sort('changed', 'DESC')
->execute();
if (empty($vids_to_delete)) {
return;
}
foreach ($vids_to_delete as $vid => $dummy) {
/** @var \Drupal\Core\Entity\RevisionableInterface $revision */
if ($revision = $storage
->loadRevision($vid)) {
// Prevent deletion if this is the default revision.
if ($revision
->isDefaultRevision()) {
continue;
}
}
$storage
->deleteRevision($vid);
}
return $this;
}