diff options
Diffstat (limited to 'lib/private/UserStatus/Manager.php')
-rw-r--r-- | lib/private/UserStatus/Manager.php | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/lib/private/UserStatus/Manager.php b/lib/private/UserStatus/Manager.php index 9e48b284e92..bca80bc5b03 100644 --- a/lib/private/UserStatus/Manager.php +++ b/lib/private/UserStatus/Manager.php @@ -25,21 +25,21 @@ declare(strict_types=1); */ namespace OC\UserStatus; -use OCP\ILogger; use OCP\IServerContainer; use OCP\UserStatus\IManager; use OCP\UserStatus\IProvider; use Psr\Container\ContainerExceptionInterface; +use Psr\Log\LoggerInterface; class Manager implements IManager { /** @var IServerContainer */ private $container; - /** @var ILogger */ + /** @var LoggerInterface */ private $logger; - /** @var null */ + /** @var class-string */ private $providerClass; /** @var IProvider */ @@ -49,10 +49,10 @@ class Manager implements IManager { * Manager constructor. * * @param IServerContainer $container - * @param ILogger $logger + * @param LoggerInterface $logger */ public function __construct(IServerContainer $container, - ILogger $logger) { + LoggerInterface $logger) { $this->container = $container; $this->logger = $logger; } @@ -90,16 +90,35 @@ class Manager implements IManager { return; } + /** + * @psalm-suppress InvalidCatch + */ try { $provider = $this->container->get($this->providerClass); } catch (ContainerExceptionInterface $e) { - $this->logger->logException($e, [ - 'message' => 'Could not load user-status provider dynamically: ' . $e->getMessage(), - 'level' => ILogger::ERROR, + $this->logger->error('Could not load user-status "' . $this->providerClass . '" provider dynamically: ' . $e->getMessage(), [ + 'exception' => $e, ]); return; } $this->provider = $provider; } + + public function setUserStatus(string $userId, string $messageId, string $status, bool $createBackup = false): void { + $this->setupProvider(); + if (!$this->provider || !($this->provider instanceof ISettableProvider)) { + return; + } + + $this->provider->setUserStatus($userId, $messageId, $status, $createBackup); + } + + public function revertUserStatus(string $userId, string $messageId, string $status): void { + $this->setupProvider(); + if (!$this->provider || !($this->provider instanceof ISettableProvider)) { + return; + } + $this->provider->revertUserStatus($userId, $messageId, $status); + } } |