diff options
Diffstat (limited to 'apps/files_reminders/lib')
-rw-r--r-- | apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php | 6 | ||||
-rw-r--r-- | apps/files_reminders/lib/Db/ReminderMapper.php | 22 |
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); } |