-
-
Notifications
You must be signed in to change notification settings - Fork 4k
Commit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
- Loading branch information
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
<?php | ||
/** | ||
* @copyright Copyright (c) 2024 Julius Härtl <jus@bitgrid.net> | ||
* | ||
* @author Julius Härtl <jus@bitgrid.net> | ||
* | ||
* @license GNU AGPL version 3 or any later version | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU Affero General Public License as | ||
* published by the Free Software Foundation, either version 3 of the | ||
* License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU Affero General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU Affero General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
namespace OCA\Comments\Listener; | ||
|
||
use OCA\Comments\Activity\Listener as ActivityListener; | ||
use OCA\Comments\Notification\Listener as NotificationListener; | ||
use OCP\Comments\CommentsEvent; | ||
use OCP\EventDispatcher\Event; | ||
use OCP\EventDispatcher\IEventListener; | ||
|
||
/** @template-implements IEventListener<CommentsEvent|Event> */ | ||
class CommentsEventListener implements IEventListener { | ||
public function __construct( | ||
private ActivityListener $activityListener, | ||
private NotificationListener $notificationListener, | ||
) { | ||
} | ||
|
||
public function handle(Event $event): void { | ||
if (!$event instanceof CommentsEvent) { | ||
return; | ||
} | ||
|
||
if ($event->getComment()->getObjectType() !== 'files') { | ||
// this is a 'files'-specific Handler | ||
return; | ||
} | ||
|
||
$eventType = $event->getEvent(); | ||
if ($eventType === CommentsEvent::EVENT_ADD | ||
Check notice Code scanning / Psalm DeprecatedConstant Note
Constant OCP\Comments\CommentsEvent::EVENT_ADD is deprecated
|
||
) { | ||
$this->notificationHandler($event); | ||
$this->activityHandler($event); | ||
return; | ||
} | ||
|
||
$applicableEvents = [ | ||
CommentsEvent::EVENT_PRE_UPDATE, | ||
Check notice Code scanning / Psalm DeprecatedConstant Note
Constant OCP\Comments\CommentsEvent::EVENT_PRE_UPDATE is deprecated
|
||
CommentsEvent::EVENT_UPDATE, | ||
Check notice Code scanning / Psalm DeprecatedConstant Note
Constant OCP\Comments\CommentsEvent::EVENT_UPDATE is deprecated
|
||
CommentsEvent::EVENT_DELETE, | ||
Check notice Code scanning / Psalm DeprecatedConstant Note
Constant OCP\Comments\CommentsEvent::EVENT_DELETE is deprecated
|
||
]; | ||
if (in_array($eventType, $applicableEvents)) { | ||
$this->notificationHandler($event); | ||
return; | ||
} | ||
} | ||
|
||
private function activityHandler(CommentsEvent $event): void { | ||
$this->activityListener->commentEvent($event); | ||
} | ||
|
||
private function notificationHandler(CommentsEvent $event): void { | ||
$this->notificationListener->evaluate($event); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,11 +9,13 @@ | |
* Interface ICommentsEventHandler | ||
* | ||
* @since 11.0.0 | ||
* @depreacted 30.0.0 Register a listener for the CommentsEvent through the IEventDispatcher | ||
*/ | ||
interface ICommentsEventHandler { | ||
Check failure on line 14 in lib/public/Comments/ICommentsEventHandler.php GitHub Actions / static-code-analysis-ocpInvalidDocblock
|
||
/** | ||
* @param CommentsEvent $event | ||
* @since 11.0.0 | ||
* @depreacted 30.0.0 Register a listener for the CommentsEvent through the IEventDispatcher | ||
*/ | ||
public function handle(CommentsEvent $event); | ||
Check failure on line 20 in lib/public/Comments/ICommentsEventHandler.php GitHub Actions / static-code-analysis-ocpInvalidDocblock
|
||
} |