]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(files_reminders): Delete reminders on node deleted 39876/head
authorChristopher Ng <chrng8@gmail.com>
Tue, 15 Aug 2023 01:09:24 +0000 (18:09 -0700)
committerChristopher Ng <chrng8@gmail.com>
Tue, 15 Aug 2023 01:09:24 +0000 (18:09 -0700)
Signed-off-by: Christopher Ng <chrng8@gmail.com>
apps/files_reminders/lib/Db/ReminderMapper.php
apps/files_reminders/lib/Listener/NodeDeletedListener.php

index 1a8f05a3db958d20d9ebca6b08a29170fecb2903..3f7fc04b2f08c7588216c0e841afa38a30d2b9a3 100644 (file)
@@ -31,6 +31,7 @@ use OCP\AppFramework\Db\DoesNotExistException;
 use OCP\AppFramework\Db\QBMapper;
 use OCP\DB\QueryBuilder\IQueryBuilder;
 use OCP\Files\Node;
+use OCP\Files\NotFoundException;
 use OCP\IDBConnection;
 use OCP\IUser;
 
@@ -111,11 +112,17 @@ class ReminderMapper extends QBMapper {
         * @return Reminder[]
         */
        public function findAllForNode(Node $node) {
+               try {
+                       $nodeId = $node->getId();
+               } catch (NotFoundException $e) {
+                       return [];
+               }
+
                $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('file_id', $qb->createNamedParameter($node->getId(), IQueryBuilder::PARAM_INT)))
+                       ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($nodeId, IQueryBuilder::PARAM_INT)))
                        ->orderBy('due_date', 'ASC');
 
                return $this->findEntities($qb);
index 460ddfd4abe7829c467e4a01e5ecb4db531dfb89..88aed08bba82f710dcbc3fb714373650ae7a77cc 100644 (file)
@@ -26,8 +26,6 @@ declare(strict_types=1);
 
 namespace OCA\FilesReminders\Listener;
 
-use OC\Files\Node\NonExistingFile;
-use OC\Files\Node\NonExistingFolder;
 use OCA\FilesReminders\Service\ReminderService;
 use OCP\EventDispatcher\Event;
 use OCP\EventDispatcher\IEventListener;
@@ -44,10 +42,6 @@ class NodeDeletedListener implements IEventListener {
                }
 
                $node = $event->getNode();
-               if ($node instanceof NonExistingFile || $node instanceof NonExistingFolder) {
-                       return;
-               }
-
                $this->reminderService->removeAllForNode($node);
        }
 }