@@ -137,24 +137,14 @@ public function findNotified(DateTime $buffer, ?int $limit = null) {
137137 * @return Reminder[]
138138 */
139139 public function findAllInFolder (IUser $ user , Folder $ folder ) {
140- $ fileIds = array_values (array_filter (array_map (
141- function (Node $ node ) {
142- try {
143- return $ node ->getId ();
144- } catch (NotFoundException $ e ) {
145- return null ;
146- }
147- },
148- $ folder ->getDirectoryListing (),
149- )));
150-
151140 $ qb = $ this ->db ->getQueryBuilder ();
152141
153- $ qb ->select ('id ' , 'user_id ' , 'file_id ' , 'due_date ' , 'updated_at ' , 'created_at ' , 'notified ' )
154- ->from ($ this ->getTableName ())
155- ->where ($ qb ->expr ()->eq ('user_id ' , $ qb ->createNamedParameter ($ user ->getUID (), IQueryBuilder::PARAM_STR )))
156- ->andWhere ($ qb ->expr ()->in ('file_id ' , $ qb ->createNamedParameter ($ fileIds , IQueryBuilder::PARAM_INT_ARRAY )))
157- ->orderBy ('due_date ' , 'ASC ' );
142+ $ qb ->select ('r.id ' , 'r.user_id ' , 'r.file_id ' , 'r.due_date ' , 'r.updated_at ' , 'r.created_at ' , 'r.notified ' )
143+ ->from ($ this ->getTableName (), 'r ' )
144+ ->innerJoin ('r ' , 'filecache ' , 'f ' , $ qb ->expr ()->eq ('r.file_id ' , 'f.fileid ' ))
145+ ->where ($ qb ->expr ()->eq ('r.user_id ' , $ qb ->createNamedParameter ($ user ->getUID (), IQueryBuilder::PARAM_STR )))
146+ ->andWhere ($ qb ->expr ()->eq ('f.parent ' , $ qb ->createNamedParameter ($ folder ->getId (), IQueryBuilder::PARAM_INT )))
147+ ->orderBy ('r.due_date ' , 'ASC ' );
158148
159149 return $ this ->findEntities ($ qb );
160150 }
0 commit comments