aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/User/Events/UserLiveStatusEvent.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/User/Events/UserLiveStatusEvent.php')
-rw-r--r--lib/public/User/Events/UserLiveStatusEvent.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/public/User/Events/UserLiveStatusEvent.php b/lib/public/User/Events/UserLiveStatusEvent.php
new file mode 100644
index 00000000000..b1f4c9c1d75
--- /dev/null
+++ b/lib/public/User/Events/UserLiveStatusEvent.php
@@ -0,0 +1,92 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\User\Events;
+
+use OCP\EventDispatcher\Event;
+use OCP\IUser;
+use OCP\UserStatus\IUserStatus;
+
+/**
+ * @since 20.0.0
+ */
+class UserLiveStatusEvent extends Event {
+ /**
+ * @var string
+ * @since 20.0.0
+ */
+ public const STATUS_ONLINE = 'online';
+
+ /**
+ * @var string
+ * @since 20.0.0
+ */
+ public const STATUS_AWAY = 'away';
+
+ /**
+ * @var string
+ * @since 20.0.0
+ */
+ public const STATUS_OFFLINE = 'offline';
+
+ private IUser $user;
+ private string $status;
+ private int $timestamp;
+ private ?IUserStatus $userStatus = null;
+
+ /**
+ * @since 20.0.0
+ */
+ public function __construct(IUser $user,
+ string $status,
+ int $timestamp) {
+ parent::__construct();
+ $this->user = $user;
+ $this->status = $status;
+ $this->timestamp = $timestamp;
+ }
+
+ /**
+ * @return IUser
+ * @since 20.0.0
+ */
+ public function getUser(): IUser {
+ return $this->user;
+ }
+
+ /**
+ * @return string
+ * @since 20.0.0
+ */
+ public function getStatus(): string {
+ return $this->status;
+ }
+
+ /**
+ * @return int
+ * @since 20.0.0
+ */
+ public function getTimestamp(): int {
+ return $this->timestamp;
+ }
+
+ /**
+ * Get the user status that might be available after processing the event
+ * @since 24.0.0
+ */
+ public function getUserStatus(): ?IUserStatus {
+ return $this->userStatus;
+ }
+
+ /**
+ * @since 24.0.0
+ */
+ public function setUserStatus(IUserStatus $userStatus) {
+ $this->userStatus = $userStatus;
+ }
+}