aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Comments/CommentNode.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/lib/Comments/CommentNode.php')
-rw-r--r--apps/dav/lib/Comments/CommentNode.php75
1 files changed, 15 insertions, 60 deletions
diff --git a/apps/dav/lib/Comments/CommentNode.php b/apps/dav/lib/Comments/CommentNode.php
index af76027671e..5dbefa82d93 100644
--- a/apps/dav/lib/Comments/CommentNode.php
+++ b/apps/dav/lib/Comments/CommentNode.php
@@ -1,34 +1,18 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\DAV\Comments;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Comments\MessageTooLongException;
-use OCP\ILogger;
use OCP\IUserManager;
use OCP\IUserSession;
+use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\MethodNotAllowed;
@@ -46,57 +30,30 @@ class CommentNode implements \Sabre\DAV\INode, \Sabre\DAV\IProperties {
public const PROPERTY_NAME_MENTION_ID = '{http://owncloud.org/ns}mentionId';
public const PROPERTY_NAME_MENTION_DISPLAYNAME = '{http://owncloud.org/ns}mentionDisplayName';
- /** @var IComment */
- public $comment;
-
- /** @var ICommentsManager */
- protected $commentsManager;
-
- /** @var ILogger */
- protected $logger;
-
/** @var array list of properties with key being their name and value their setter */
protected $properties = [];
- /** @var IUserManager */
- protected $userManager;
-
- /** @var IUserSession */
- protected $userSession;
-
/**
* CommentNode constructor.
- *
- * @param ICommentsManager $commentsManager
- * @param IComment $comment
- * @param IUserManager $userManager
- * @param IUserSession $userSession
- * @param ILogger $logger
*/
public function __construct(
- ICommentsManager $commentsManager,
- IComment $comment,
- IUserManager $userManager,
- IUserSession $userSession,
- ILogger $logger
+ protected ICommentsManager $commentsManager,
+ public IComment $comment,
+ protected IUserManager $userManager,
+ protected IUserSession $userSession,
+ protected LoggerInterface $logger,
) {
- $this->commentsManager = $commentsManager;
- $this->comment = $comment;
- $this->logger = $logger;
-
$methods = get_class_methods($this->comment);
$methods = array_filter($methods, function ($name) {
- return strpos($name, 'get') === 0;
+ return str_starts_with($name, 'get');
});
foreach ($methods as $getter) {
if ($getter === 'getMentions') {
continue; // special treatment
}
- $name = '{'.self::NS_OWNCLOUD.'}' . lcfirst(substr($getter, 3));
+ $name = '{' . self::NS_OWNCLOUD . '}' . lcfirst(substr($getter, 3));
$this->properties[$name] = $getter;
}
- $this->userManager = $userManager;
- $this->userSession = $userSession;
}
/**
@@ -172,10 +129,8 @@ class CommentNode implements \Sabre\DAV\INode, \Sabre\DAV\IProperties {
/**
* Returns the last modification time, as a unix timestamp
- *
- * @return int
*/
- public function getLastModified() {
+ public function getLastModified(): ?int {
return null;
}
@@ -194,7 +149,7 @@ class CommentNode implements \Sabre\DAV\INode, \Sabre\DAV\IProperties {
$this->commentsManager->save($this->comment);
return true;
} catch (\Exception $e) {
- $this->logger->logException($e, ['app' => 'dav/comments']);
+ $this->logger->error($e->getMessage(), ['app' => 'dav/comments', 'exception' => $e]);
if ($e instanceof MessageTooLongException) {
$msg = 'Message exceeds allowed character limit of ';
throw new BadRequest($msg . IComment::MAX_MESSAGE_LENGTH, 0, $e);
@@ -287,7 +242,7 @@ class CommentNode implements \Sabre\DAV\INode, \Sabre\DAV\IProperties {
try {
$displayName = $this->commentsManager->resolveDisplayName($mention['type'], $mention['id']);
} catch (\OutOfBoundsException $e) {
- $this->logger->logException($e);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
// No displayname, upon client's discretion what to display.
$displayName = '';
}