mirror of
https://github.com/nextcloud/server.git
synced 2026-06-10 17:23:59 -04:00
Listen to cache event when deleting metadata
Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
parent
f74084cd3d
commit
b63ddc73a2
2 changed files with 6 additions and 9 deletions
|
|
@ -37,7 +37,7 @@ use OCP\DB\Exception;
|
|||
use OCP\DB\Exception as DBException;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Files\Events\Node\NodeDeletedEvent;
|
||||
use OCP\Files\Cache\CacheEntryRemovedEvent;
|
||||
use OCP\Files\Events\Node\NodeWrittenEvent;
|
||||
use OCP\Files\InvalidPathException;
|
||||
use OCP\Files\Node;
|
||||
|
|
@ -305,6 +305,6 @@ class FilesMetadataManager implements IFilesMetadataManager {
|
|||
*/
|
||||
public static function loadListeners(IEventDispatcher $eventDispatcher): void {
|
||||
$eventDispatcher->addServiceListener(NodeWrittenEvent::class, MetadataUpdate::class);
|
||||
$eventDispatcher->addServiceListener(NodeDeletedEvent::class, MetadataDelete::class);
|
||||
$eventDispatcher->addServiceListener(CacheEntryRemovedEvent::class, MetadataDelete::class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@ namespace OC\FilesMetadata\Listener;
|
|||
use Exception;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Files\Events\Node\NodeDeletedEvent;
|
||||
use OCP\Files\Cache\CacheEntryRemovedEvent;
|
||||
use OCP\FilesMetadata\IFilesMetadataManager;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
* Handle file deletion event and remove stored metadata related to the deleted file
|
||||
*
|
||||
* @template-implements IEventListener<NodeDeletedEvent>
|
||||
* @template-implements IEventListener<CacheEntryRemovedEvent>
|
||||
*/
|
||||
class MetadataDelete implements IEventListener {
|
||||
public function __construct(
|
||||
|
|
@ -44,16 +44,13 @@ class MetadataDelete implements IEventListener {
|
|||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Event $event
|
||||
*/
|
||||
public function handle(Event $event): void {
|
||||
if (!($event instanceof NodeDeletedEvent)) {
|
||||
if (!($event instanceof CacheEntryRemovedEvent)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$nodeId = (int)$event->getNode()->getId();
|
||||
$nodeId = $event->getFileId();
|
||||
if ($nodeId > 0) {
|
||||
$this->filesMetadataManager->deleteMetadata($nodeId);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue