aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_reminders/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_reminders/lib')
-rw-r--r--apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php6
-rw-r--r--apps/files_reminders/lib/Db/ReminderMapper.php22
2 files changed, 10 insertions, 18 deletions
diff --git a/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
index d8467d1740c..ab8c762d674 100644
--- a/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
+++ b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
@@ -13,10 +13,10 @@ use OCA\FilesReminders\Db\ReminderMapper;
use OCA\FilesReminders\Service\ReminderService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory;
-use OCP\BackgroundJob\Job;
+use OCP\BackgroundJob\TimedJob;
use Psr\Log\LoggerInterface;
-class ScheduledNotifications extends Job {
+class ScheduledNotifications extends TimedJob {
public function __construct(
ITimeFactory $time,
protected ReminderMapper $reminderMapper,
@@ -24,6 +24,8 @@ class ScheduledNotifications extends Job {
protected LoggerInterface $logger,
) {
parent::__construct($time);
+
+ $this->setInterval(60);
}
/**
diff --git a/apps/files_reminders/lib/Db/ReminderMapper.php b/apps/files_reminders/lib/Db/ReminderMapper.php
index 0ba5cfc3ecd..63cba437d07 100644
--- a/apps/files_reminders/lib/Db/ReminderMapper.php
+++ b/apps/files_reminders/lib/Db/ReminderMapper.php
@@ -137,24 +137,14 @@ class ReminderMapper extends QBMapper {
* @return Reminder[]
*/
public function findAllInFolder(IUser $user, Folder $folder) {
- $fileIds = array_values(array_filter(array_map(
- function (Node $node) {
- try {
- return $node->getId();
- } catch (NotFoundException $e) {
- return null;
- }
- },
- $folder->getDirectoryListing(),
- )));
-
$qb = $this->db->getQueryBuilder();
- $qb->select('id', 'user_id', 'file_id', 'due_date', 'updated_at', 'created_at', 'notified')
- ->from($this->getTableName())
- ->where($qb->expr()->eq('user_id', $qb->createNamedParameter($user->getUID(), IQueryBuilder::PARAM_STR)))
- ->andWhere($qb->expr()->in('file_id', $qb->createNamedParameter($fileIds, IQueryBuilder::PARAM_INT_ARRAY)))
- ->orderBy('due_date', 'ASC');
+ $qb->select('r.id', 'r.user_id', 'r.file_id', 'r.due_date', 'r.updated_at', 'r.created_at', 'r.notified')
+ ->from($this->getTableName(), 'r')
+ ->innerJoin('r', 'filecache', 'f', $qb->expr()->eq('r.file_id', 'f.fileid'))
+ ->where($qb->expr()->eq('r.user_id', $qb->createNamedParameter($user->getUID(), IQueryBuilder::PARAM_STR)))
+ ->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($folder->getId(), IQueryBuilder::PARAM_INT)))
+ ->orderBy('r.due_date', 'ASC');
return $this->findEntities($qb);
}