diff options
author | Carl Schwan <carl@carlschwan.eu> | 2022-11-25 11:19:47 +0100 |
---|---|---|
committer | Côme Chilliet <come.chilliet@nextcloud.com> | 2023-06-20 10:55:20 +0200 |
commit | 9725d0032944ebe5a73d59781a66742c5d1ae404 (patch) | |
tree | d7f90b66e49297e276241ed3960716cddfbad49a /apps/comments | |
parent | 5063bf37ed3e68041adb9a96f430a87d59106491 (diff) | |
download | nextcloud-server-9725d0032944ebe5a73d59781a66742c5d1ae404.tar.gz nextcloud-server-9725d0032944ebe5a73d59781a66742c5d1ae404.zip |
Cleanup comments code
- Fix various psalm issues
- Add as much typing as possible while preserving stable API
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'apps/comments')
-rw-r--r-- | apps/comments/lib/Activity/Filter.php | 38 | ||||
-rw-r--r-- | apps/comments/lib/Activity/Listener.php | 5 | ||||
-rw-r--r-- | apps/comments/lib/Activity/Provider.php | 2 | ||||
-rw-r--r-- | apps/comments/lib/Activity/Setting.php | 51 | ||||
-rw-r--r-- | apps/comments/lib/Collaboration/CommentersSorter.php | 10 | ||||
-rw-r--r-- | apps/comments/lib/EventHandler.php | 22 | ||||
-rw-r--r-- | apps/comments/lib/Listener/CommentsEntityEventListener.php | 13 | ||||
-rw-r--r-- | apps/comments/lib/MaxAutoCompleteResultsInitialState.php | 4 | ||||
-rw-r--r-- | apps/comments/lib/Notification/Listener.php | 23 | ||||
-rw-r--r-- | apps/comments/lib/Search/CommentsSearchProvider.php | 13 | ||||
-rw-r--r-- | apps/comments/lib/Search/Result.php | 11 |
11 files changed, 49 insertions, 143 deletions
diff --git a/apps/comments/lib/Activity/Filter.php b/apps/comments/lib/Activity/Filter.php index efd8d5140ae..2b6e898f599 100644 --- a/apps/comments/lib/Activity/Filter.php +++ b/apps/comments/lib/Activity/Filter.php @@ -27,64 +27,42 @@ use OCP\IL10N; use OCP\IURLGenerator; class Filter implements IFilter { - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; + protected IL10N $l; + protected IURLGenerator $url; public function __construct(IL10N $l, IURLGenerator $url) { $this->l = $l; $this->url = $url; } - /** - * @return string Lowercase a-z only identifier - * @since 11.0.0 - */ - public function getIdentifier() { + public function getIdentifier(): string { return 'comments'; } - /** - * @return string A translated string - * @since 11.0.0 - */ - public function getName() { + public function getName(): string { return $this->l->t('Comments'); } - /** - * @return int - * @since 11.0.0 - */ - public function getPriority() { + public function getPriority(): int { return 40; } - /** - * @return string Full URL to an icon, empty string when none is given - * @since 11.0.0 - */ - public function getIcon() { + public function getIcon(): string { return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/comment.svg')); } /** * @param string[] $types * @return string[] An array of allowed apps from which activities should be displayed - * @since 11.0.0 */ - public function filterTypes(array $types) { + public function filterTypes(array $types): array { return $types; } /** * @return string[] An array of allowed apps from which activities should be displayed - * @since 11.0.0 */ - public function allowedApps() { + public function allowedApps(): array { return ['comments']; } } diff --git a/apps/comments/lib/Activity/Listener.php b/apps/comments/lib/Activity/Listener.php index 69315b6ac00..a066ccdefc1 100644 --- a/apps/comments/lib/Activity/Listener.php +++ b/apps/comments/lib/Activity/Listener.php @@ -59,10 +59,7 @@ class Listener { $this->shareHelper = $shareHelper; } - /** - * @param CommentsEvent $event - */ - public function commentEvent(CommentsEvent $event) { + public function commentEvent(CommentsEvent $event): void { if ($event->getComment()->getObjectType() !== 'files' || $event->getEvent() !== CommentsEvent::EVENT_ADD || !$this->appManager->isInstalled('activity')) { diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php index f9a5971c7f3..727f6d66b50 100644 --- a/apps/comments/lib/Activity/Provider.php +++ b/apps/comments/lib/Activity/Provider.php @@ -58,7 +58,7 @@ class Provider implements IProvider { * @throws \InvalidArgumentException * @since 11.0.0 */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { + public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent { if ($event->getApp() !== 'comments') { throw new \InvalidArgumentException(); } diff --git a/apps/comments/lib/Activity/Setting.php b/apps/comments/lib/Activity/Setting.php index c0d91c244a6..3352bf2a59b 100644 --- a/apps/comments/lib/Activity/Setting.php +++ b/apps/comments/lib/Activity/Setting.php @@ -26,72 +26,37 @@ use OCP\Activity\ISetting; use OCP\IL10N; class Setting implements ISetting { + protected IL10N $l; - /** @var IL10N */ - protected $l; - - /** - * @param IL10N $l - */ public function __construct(IL10N $l) { $this->l = $l; } - /** - * @return string Lowercase a-z and underscore only identifier - * @since 11.0.0 - */ - public function getIdentifier() { + public function getIdentifier(): string { return 'comments'; } - /** - * @return string A translated string - * @since 11.0.0 - */ - public function getName() { + public function getName(): string { return $this->l->t('<strong>Comments</strong> for files'); } - /** - * @return int whether the filter should be rather on the top or bottom of - * the admin section. The filters are arranged in ascending order of the - * priority values. It is required to return a value between 0 and 100. - * @since 11.0.0 - */ - public function getPriority() { + public function getPriority(): int { return 50; } - /** - * @return bool True when the option can be changed for the stream - * @since 11.0.0 - */ - public function canChangeStream() { + public function canChangeStream(): bool { return true; } - /** - * @return bool True when the option can be changed for the stream - * @since 11.0.0 - */ - public function isDefaultEnabledStream() { + public function isDefaultEnabledStream(): bool { return true; } - /** - * @return bool True when the option can be changed for the mail - * @since 11.0.0 - */ - public function canChangeMail() { + public function canChangeMail(): bool { return true; } - /** - * @return bool True when the option can be changed for the stream - * @since 11.0.0 - */ - public function isDefaultEnabledMail() { + public function isDefaultEnabledMail(): bool { return false; } } diff --git a/apps/comments/lib/Collaboration/CommentersSorter.php b/apps/comments/lib/Collaboration/CommentersSorter.php index 8723b132e03..b7c993b4f20 100644 --- a/apps/comments/lib/Collaboration/CommentersSorter.php +++ b/apps/comments/lib/Collaboration/CommentersSorter.php @@ -27,14 +27,13 @@ use OCP\Collaboration\AutoComplete\ISorter; use OCP\Comments\ICommentsManager; class CommentersSorter implements ISorter { - private ICommentsManager $commentsManager; public function __construct(ICommentsManager $commentsManager) { $this->commentsManager = $commentsManager; } - public function getId() { + public function getId(): string { return 'commenters'; } @@ -42,10 +41,10 @@ class CommentersSorter implements ISorter { * Sorts people who commented on the given item atop (descelating) of the * others * - * @param array $sortArray + * @param array &$sortArray * @param array $context */ - public function sort(array &$sortArray, array $context) { + public function sort(array &$sortArray, array $context): void { $commenters = $this->retrieveCommentsInformation($context['itemType'], $context['itemId']); if (count($commenters) === 0) { return; @@ -76,6 +75,9 @@ class CommentersSorter implements ISorter { } } + /** + * @return array<string, array<string, int>> + */ protected function retrieveCommentsInformation(string $type, string $id): array { $comments = $this->commentsManager->getForObject($type, $id); if (count($comments) === 0) { diff --git a/apps/comments/lib/EventHandler.php b/apps/comments/lib/EventHandler.php index 6027a24b026..722e3b8cc72 100644 --- a/apps/comments/lib/EventHandler.php +++ b/apps/comments/lib/EventHandler.php @@ -34,21 +34,15 @@ use OCP\Comments\ICommentsEventHandler; * @package OCA\Comments */ class EventHandler implements ICommentsEventHandler { - /** @var ActivityListener */ - private $activityListener; - - /** @var NotificationListener */ - private $notificationListener; + private ActivityListener $activityListener; + private NotificationListener $notificationListener; public function __construct(ActivityListener $activityListener, NotificationListener $notificationListener) { $this->activityListener = $activityListener; $this->notificationListener = $notificationListener; } - /** - * @param CommentsEvent $event - */ - public function handle(CommentsEvent $event) { + public function handle(CommentsEvent $event): void { if ($event->getComment()->getObjectType() !== 'files') { // this is a 'files'-specific Handler return; @@ -73,17 +67,11 @@ class EventHandler implements ICommentsEventHandler { } } - /** - * @param CommentsEvent $event - */ - private function activityHandler(CommentsEvent $event) { + private function activityHandler(CommentsEvent $event): void { $this->activityListener->commentEvent($event); } - /** - * @param CommentsEvent $event - */ - private function notificationHandler(CommentsEvent $event) { + private function notificationHandler(CommentsEvent $event): void { $this->notificationListener->evaluate($event); } } diff --git a/apps/comments/lib/Listener/CommentsEntityEventListener.php b/apps/comments/lib/Listener/CommentsEntityEventListener.php index 5675e1904cc..b49304c409b 100644 --- a/apps/comments/lib/Listener/CommentsEntityEventListener.php +++ b/apps/comments/lib/Listener/CommentsEntityEventListener.php @@ -28,16 +28,25 @@ namespace OCA\Comments\Listener; use OCP\Comments\CommentsEntityEvent; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\Files\IRootFolder; class CommentsEntityEventListener implements IEventListener { + private IRootFolder $rootFolder; + private ?string $userId; + + public function __construct(IRootFolder $rootFolder, ?string $userId = null) { + $this->rootFolder = $rootFolder; + $this->userId = $userId; + } + public function handle(Event $event): void { if (!($event instanceof CommentsEntityEvent)) { // Unrelated return; } - $event->addEntityCollection('files', function ($name) { - $nodes = \OC::$server->getUserFolder()->getById((int)$name); + $event->addEntityCollection('files', function ($name): bool { + $nodes = $this->rootFolder->getUserFolder($this->userId)->getById((int)$name); return !empty($nodes); }); } diff --git a/apps/comments/lib/MaxAutoCompleteResultsInitialState.php b/apps/comments/lib/MaxAutoCompleteResultsInitialState.php index 015eaf19d84..cf7335e84c8 100644 --- a/apps/comments/lib/MaxAutoCompleteResultsInitialState.php +++ b/apps/comments/lib/MaxAutoCompleteResultsInitialState.php @@ -31,9 +31,7 @@ use OCP\AppFramework\Services\InitialStateProvider; use OCP\IConfig; class MaxAutoCompleteResultsInitialState extends InitialStateProvider { - - /** @var IConfig */ - private $config; + private IConfig $config; public function __construct(IConfig $config) { $this->config = $config; diff --git a/apps/comments/lib/Notification/Listener.php b/apps/comments/lib/Notification/Listener.php index d1662f84266..bbea310ef7e 100644 --- a/apps/comments/lib/Notification/Listener.php +++ b/apps/comments/lib/Notification/Listener.php @@ -27,15 +27,12 @@ use OCP\Comments\CommentsEvent; use OCP\Comments\IComment; use OCP\IUserManager; use OCP\Notification\IManager; +use OCP\Notification\INotification; class Listener { - protected IManager $notificationManager; protected IUserManager $userManager; - /** - * Listener constructor. - */ public function __construct( IManager $notificationManager, IUserManager $userManager @@ -44,10 +41,7 @@ class Listener { $this->userManager = $userManager; } - /** - * @param CommentsEvent $event - */ - public function evaluate(CommentsEvent $event) { + public function evaluate(CommentsEvent $event): void { $comment = $event->getComment(); $mentions = $this->extractMentions($comment->getMentions()); @@ -77,12 +71,9 @@ class Listener { } /** - * creates a notification instance and fills it with comment data - * - * @param IComment $comment - * @return \OCP\Notification\INotification + * Creates a notification instance and fills it with comment data */ - public function instantiateNotification(IComment $comment) { + public function instantiateNotification(IComment $comment): INotification { $notification = $this->notificationManager->createNotification(); $notification ->setApp('comments') @@ -94,12 +85,12 @@ class Listener { } /** - * flattens the mention array returned from comments to a list of user ids. + * Flattens the mention array returned from comments to a list of user ids. * * @param array $mentions - * @return string[] containing the mentions, e.g. ['alice', 'bob'] + * @return list<string> containing the mentions, e.g. ['alice', 'bob'] */ - public function extractMentions(array $mentions) { + public function extractMentions(array $mentions): array { if (empty($mentions)) { return []; } diff --git a/apps/comments/lib/Search/CommentsSearchProvider.php b/apps/comments/lib/Search/CommentsSearchProvider.php index b36f82f8401..cca01c8ac44 100644 --- a/apps/comments/lib/Search/CommentsSearchProvider.php +++ b/apps/comments/lib/Search/CommentsSearchProvider.php @@ -39,7 +39,6 @@ use function array_map; use function pathinfo; class CommentsSearchProvider implements IProvider { - private IUserManager $userManager; private IL10N $l10n; private IURLGenerator $urlGenerator; @@ -55,23 +54,14 @@ class CommentsSearchProvider implements IProvider { $this->legacyProvider = $legacyProvider; } - /** - * @inheritDoc - */ public function getId(): string { return 'comments'; } - /** - * @inheritDoc - */ public function getName(): string { return $this->l10n->t('Comments'); } - /** - * @inheritDoc - */ public function getOrder(string $route, array $routeParameters): int { if ($route === 'files.View.index') { // Files first @@ -80,9 +70,6 @@ class CommentsSearchProvider implements IProvider { return 10; } - /** - * @inheritDoc - */ public function search(IUser $user, ISearchQuery $query): SearchResult { return SearchResult::complete( $this->l10n->t('Comments'), diff --git a/apps/comments/lib/Search/Result.php b/apps/comments/lib/Search/Result.php index ec799b7e30a..06016d2b46d 100644 --- a/apps/comments/lib/Search/Result.php +++ b/apps/comments/lib/Search/Result.php @@ -58,10 +58,6 @@ class Result extends BaseResult { public $fileName; /** - * @param string $search - * @param IComment $comment - * @param string $authorName - * @param string $path * @throws NotFoundException * @deprecated 20.0.0 */ @@ -70,7 +66,7 @@ class Result extends BaseResult { string $authorName, string $path) { parent::__construct( - (int) $comment->getId(), + $comment->getId(), $comment->getMessage() /* @todo , [link to file] */ ); @@ -83,8 +79,6 @@ class Result extends BaseResult { } /** - * @param string $path - * @return string * @throws NotFoundException */ protected function getVisiblePath(string $path): string { @@ -98,9 +92,6 @@ class Result extends BaseResult { } /** - * @param string $message - * @param string $search - * @return string * @throws NotFoundException */ protected function getRelevantMessagePart(string $message, string $search): string { |