Browse Source

fix(files_reminders): Delete reminders on node deleted

Signed-off-by: Christopher Ng <chrng8@gmail.com>
pull/39876/head
Christopher Ng 2 years ago
parent
commit
be6c4c4058
  1. 9
      apps/files_reminders/lib/Db/ReminderMapper.php
  2. 6
      apps/files_reminders/lib/Listener/NodeDeletedListener.php

9
apps/files_reminders/lib/Db/ReminderMapper.php

@ -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);

6
apps/files_reminders/lib/Listener/NodeDeletedListener.php

@ -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);
}
}
Loading…
Cancel
Save