@@ -47,9 +47,11 @@ public function get(int $id): RichReminder {
47
47
}
48
48
49
49
/**
50
+ * @throws NodeNotFoundException
50
51
* @throws DoesNotExistException
51
52
*/
52
53
public function getDueForUser (IUser $ user , int $ fileId ): RichReminder {
54
+ $ this ->checkNode ($ user , $ fileId );
53
55
$ reminder = $ this ->reminderMapper ->findDueForUser ($ user , $ fileId );
54
56
return new RichReminder ($ reminder , $ this ->root );
55
57
}
@@ -74,17 +76,14 @@ public function getAll(?IUser $user = null) {
74
76
*/
75
77
public function createOrUpdate (IUser $ user , int $ fileId , DateTime $ dueDate ): bool {
76
78
$ now = new DateTime ('now ' , new DateTimeZone ('UTC ' ));
79
+ $ this ->checkNode ($ user , $ fileId );
77
80
try {
78
81
$ reminder = $ this ->reminderMapper ->findDueForUser ($ user , $ fileId );
79
82
$ reminder ->setDueDate ($ dueDate );
80
83
$ reminder ->setUpdatedAt ($ now );
81
84
$ this ->reminderMapper ->update ($ reminder );
82
85
return false ;
83
86
} catch (DoesNotExistException $ e ) {
84
- $ node = $ this ->root ->getUserFolder ($ user ->getUID ())->getFirstNodeById ($ fileId );
85
- if (!$ node ) {
86
- throw new NodeNotFoundException ();
87
- }
88
87
// Create new reminder if no reminder is found
89
88
$ reminder = new Reminder ();
90
89
$ reminder ->setUserId ($ user ->getUID ());
@@ -98,9 +97,11 @@ public function createOrUpdate(IUser $user, int $fileId, DateTime $dueDate): boo
98
97
}
99
98
100
99
/**
100
+ * @throws NodeNotFoundException
101
101
* @throws DoesNotExistException
102
102
*/
103
103
public function remove (IUser $ user , int $ fileId ): void {
104
+ $ this ->checkNode ($ user , $ fileId );
104
105
$ reminder = $ this ->reminderMapper ->findDueForUser ($ user , $ fileId );
105
106
$ this ->reminderMapper ->delete ($ reminder );
106
107
}
@@ -161,4 +162,15 @@ public function cleanUp(?int $limit = null): void {
161
162
$ this ->reminderMapper ->delete ($ reminder );
162
163
}
163
164
}
165
+
166
+ /**
167
+ * @throws NodeNotFoundException
168
+ */
169
+ private function checkNode (IUser $ user , int $ fileId ): void {
170
+ $ userFolder = $ this ->root ->getUserFolder ($ user ->getUID ());
171
+ $ node = $ userFolder ->getFirstNodeById ($ fileId );
172
+ if ($ node === null ) {
173
+ throw new NodeNotFoundException ();
174
+ }
175
+ }
164
176
}
0 commit comments