diff options
author | Georg Ehrke <developer@georgehrke.com> | 2020-08-18 10:54:46 +0200 |
---|---|---|
committer | Georg Ehrke <developer@georgehrke.com> | 2020-08-20 15:43:34 +0200 |
commit | bd6a6cf3bff74dc5690fe032a4203165227f01d2 (patch) | |
tree | e66324bec9e142b859d171b051060850295bad5d /apps/user_status/lib/Db/UserStatusMapper.php | |
parent | 03603db486debbb31dfa05486f3b10338a28b50c (diff) | |
download | nextcloud-server-bd6a6cf3bff74dc5690fe032a4203165227f01d2.tar.gz nextcloud-server-bd6a6cf3bff74dc5690fe032a4203165227f01d2.zip |
Add Status Dashboard
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
Diffstat (limited to 'apps/user_status/lib/Db/UserStatusMapper.php')
-rw-r--r-- | apps/user_status/lib/Db/UserStatusMapper.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/user_status/lib/Db/UserStatusMapper.php b/apps/user_status/lib/Db/UserStatusMapper.php index c9e18a38357..2bd6a5024d0 100644 --- a/apps/user_status/lib/Db/UserStatusMapper.php +++ b/apps/user_status/lib/Db/UserStatusMapper.php @@ -70,6 +70,33 @@ class UserStatusMapper extends QBMapper { } /** + * @param int|null $limit + * @param int|null $offset + * @return array + */ + public function findAllRecent(?int $limit = null, ?int $offset = null): array { + $qb = $this->db->getQueryBuilder(); + + $qb + ->select('*') + ->from($this->tableName) + ->orderBy('status_timestamp', 'DESC') + ->where($qb->expr()->notIn('status', $qb->createNamedParameter(['online', 'away'], IQueryBuilder::PARAM_STR_ARRAY))) + ->orWhere($qb->expr()->isNotNull('message_id')) + ->orWhere($qb->expr()->isNotNull('custom_icon')) + ->orWhere($qb->expr()->isNotNull('custom_message')); + + if ($limit !== null) { + $qb->setMaxResults($limit); + } + if ($offset !== null) { + $qb->setFirstResult($offset); + } + + return $this->findEntities($qb); + } + + /** * @param string $userId * @return UserStatus * @throws \OCP\AppFramework\Db\DoesNotExistException |