use DateTimeInterface;
use DateTimeZone;
use Exception;
+use OCA\FilesReminders\Exception\NodeNotFoundException;
use OCA\FilesReminders\Service\ReminderService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http;
try {
$this->reminderService->createOrUpdate($user, $fileId, $dueDate);
return new JSONResponse([], Http::STATUS_OK);
+ } catch (NodeNotFoundException $e) {
+ return new JSONResponse([], Http::STATUS_NOT_FOUND);
} catch (Throwable $th) {
$this->logger->error($th->getMessage(), ['exception' => $th]);
return new JSONResponse([], Http::STATUS_INTERNAL_SERVER_ERROR);
use OCA\FilesReminders\AppInfo\Application;
use OCA\FilesReminders\Db\Reminder;
use OCA\FilesReminders\Db\ReminderMapper;
+use OCA\FilesReminders\Exception\NodeNotFoundException;
use OCA\FilesReminders\Exception\UserNotFoundException;
use OCA\FilesReminders\Model\RichReminder;
use OCP\AppFramework\Db\DoesNotExistException;
);
}
+ /**
+ * @throws NodeNotFoundException
+ */
public function createOrUpdate(IUser $user, int $fileId, DateTime $dueDate): void {
$now = new DateTime('now', new DateTimeZone('UTC'));
try {
$reminder->setUpdatedAt($now);
$this->reminderMapper->update($reminder);
} catch (DoesNotExistException $e) {
+ $nodes = $this->root->getUserFolder($user->getUID())->getById($fileId);
+ if (empty($nodes)) {
+ throw new NodeNotFoundException();
+ }
// Create new reminder if no reminder is found
$reminder = new Reminder();
$reminder->setUserId($user->getUID());