Skip to content

Commit 954a1fc

Browse files
refactor: add note file event listener
Signed-off-by: Josh <josh.t.richards@gmail.com>
1 parent 7a3a0ba commit 954a1fc

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/**
6+
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
7+
* SPDX-License-Identifier: AGPL-3.0-or-later
8+
*/
9+
10+
namespace OCA\Notes\Listener;
11+
12+
use OCA\Notes\Service\MetaService;
13+
use OCP\EventDispatcher\Event;
14+
use OCP\EventDispatcher\IEventListener;
15+
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
16+
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
17+
use OCP\Files\Events\Node\BeforeNodeTouchedEvent;
18+
use OCP\Files\Events\Node\BeforeNodeWrittenEvent;
19+
use OCP\Files\Node;
20+
21+
/** @template-implements IEventListener<BeforeNodeWrittenEvent|BeforeNodeTouchedEvent|BeforeNodeDeletedEvent|BeforeNodeRenamedEvent|Event> */
22+
class NoteFileEventsListener implements IEventListener {
23+
public function __construct(
24+
private MetaService $metaService,
25+
) {
26+
}
27+
28+
public function handle(Event $event): void {
29+
if ($event instanceof BeforeNodeWrittenEvent) {
30+
$this->onFileModified($event->getNode());
31+
return;
32+
}
33+
34+
if ($event instanceof BeforeNodeTouchedEvent) {
35+
$this->onFileModified($event->getNode());
36+
return;
37+
}
38+
39+
if ($event instanceof BeforeNodeDeletedEvent) {
40+
$this->onFileModified($event->getNode());
41+
return;
42+
}
43+
44+
if ($event instanceof BeforeNodeRenamedEvent) {
45+
$this->onFileModified($event->getSource());
46+
}
47+
}
48+
49+
private function onFileModified(Node $node): void {
50+
try {
51+
$this->metaService->deleteByNote($node->getId());
52+
} catch (\Throwable $e) {
53+
}
54+
}
55+
}

0 commit comments

Comments
 (0)