summaryrefslogtreecommitdiffstats
path: root/apps/user_status/lib/Db/UserStatusMapper.php
diff options
context:
space:
mode:
authorGeorg Ehrke <developer@georgehrke.com>2020-08-18 10:54:46 +0200
committerGeorg Ehrke <developer@georgehrke.com>2020-08-20 15:43:34 +0200
commitbd6a6cf3bff74dc5690fe032a4203165227f01d2 (patch)
treee66324bec9e142b859d171b051060850295bad5d /apps/user_status/lib/Db/UserStatusMapper.php
parent03603db486debbb31dfa05486f3b10338a28b50c (diff)
downloadnextcloud-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.php27
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