*/ class ShareEventListener implements IEventListener { public function __construct( private FilesHooks $fileHooks, ) { } #[\Override] public function handle(Event $event): void { if ($event instanceof BeforeShareDeletedEvent) { $this->unShare($event); } if ($event instanceof ShareDeletedFromSelfEvent) { $this->unShareSelf($event); } if ($event instanceof ShareCreatedEvent) { $this->createShare($event); } } /** * Node shared event */ public function createShare(ShareCreatedEvent $event): void { $share = $event->getShare(); $this->fileHooks->share($share); } /** * Unsharing event */ public function unShare(BeforeShareDeletedEvent $event): void { $share = $event->getShare(); $this->fileHooks->unShare($share); } /** * "Unsharing a share from self only" event */ public function unShareSelf(ShareDeletedFromSelfEvent $event): void { $share = $event->getShare(); $this->fileHooks->unShareSelf($share); } }