Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2022-02-23 13:17:16 +0300
committerGitHub <noreply@github.com>2022-02-23 13:17:16 +0300
commitbf4acd54526d0b07ec7c305ef68d2fec4323b0b1 (patch)
tree358969e82512e2d0ecd27ab87208849c57a0a89c /lib
parent98fd66b1377c50a4257f9bd185d02d79c10cba11 (diff)
parent058d1de26012ab829fad915f35b1bb761808ce7b (diff)
Merge pull request #31106 from nextcloud/techdebt/noid/improve-user-status-update-handling
Improve user status revert performance
Diffstat (limited to 'lib')
-rw-r--r--lib/private/UserStatus/ISettableProvider.php11
-rw-r--r--lib/private/UserStatus/Manager.php8
-rw-r--r--lib/public/UserStatus/IManager.php15
3 files changed, 33 insertions, 1 deletions
diff --git a/lib/private/UserStatus/ISettableProvider.php b/lib/private/UserStatus/ISettableProvider.php
index fc0d502845e..88a107d1f86 100644
--- a/lib/private/UserStatus/ISettableProvider.php
+++ b/lib/private/UserStatus/ISettableProvider.php
@@ -52,4 +52,15 @@ interface ISettableProvider extends IProvider {
* @param string $status The expected current status.
*/
public function revertUserStatus(string $userId, string $messageId, string $status): void;
+
+ /**
+ * Revert an automatically set user status. For example after leaving a call,
+ * change back to the previously set status. If the user has already updated
+ * their status, this method does nothing.
+ *
+ * @param string[] $userIds The users for which we want to update the status.
+ * @param string $messageId The expected current messageId.
+ * @param string $status The expected current status.
+ */
+ public function revertMultipleUserStatus(array $userIds, string $messageId, string $status): void;
}
diff --git a/lib/private/UserStatus/Manager.php b/lib/private/UserStatus/Manager.php
index bca80bc5b03..c93795bea5b 100644
--- a/lib/private/UserStatus/Manager.php
+++ b/lib/private/UserStatus/Manager.php
@@ -121,4 +121,12 @@ class Manager implements IManager {
}
$this->provider->revertUserStatus($userId, $messageId, $status);
}
+
+ public function revertMultipleUserStatus(array $userIds, string $messageId, string $status): void {
+ $this->setupProvider();
+ if (!$this->provider || !($this->provider instanceof ISettableProvider)) {
+ return;
+ }
+ $this->provider->revertMultipleUserStatus($userIds, $messageId, $status);
+ }
}
diff --git a/lib/public/UserStatus/IManager.php b/lib/public/UserStatus/IManager.php
index 24cef821543..f709768d717 100644
--- a/lib/public/UserStatus/IManager.php
+++ b/lib/public/UserStatus/IManager.php
@@ -39,7 +39,7 @@ interface IManager {
* @return IUserStatus[]
* @since 20.0.0
*/
- public function getUserStatuses(array $userIds):array;
+ public function getUserStatuses(array $userIds): array;
/**
@@ -47,6 +47,7 @@ interface IManager {
*
* @param string $userId The user for which we want to update the status.
* @param string $messageId The id of the predefined message.
+ * @param string $status The status to assign
* @param bool $createBackup If true, this will store the old status so that it is possible to revert it later (e.g. after a call).
* @since 23.0.0
*/
@@ -58,7 +59,19 @@ interface IManager {
*
* @param string $userId The user for which we want to update the status.
* @param string $messageId The expected current messageId. If the user has already updated their status, this method does nothing.
+ * @param string $status The expected current status. If the user has already updated their status, this method does nothing.
* @since 23.0.0
*/
public function revertUserStatus(string $userId, string $messageId, string $status): void;
+
+ /**
+ * Revert an automatically set user status. For example after leaving a call,
+ * change back to the previously set status.
+ *
+ * @param string[] $userIds The user for which we want to update the status.
+ * @param string $messageId The expected current messageId. If the user has already updated their status, this method does nothing.
+ * @param string $status The expected current status. If the user has already updated their status, this method does nothing.
+ * @since 23.0.0
+ */
+ public function revertMultipleUserStatus(array $userIds, string $messageId, string $status): void;
}