Support subqueries in search.

This commit is contained in:
James Cole 2020-12-20 06:56:27 +01:00
parent dac961a732
commit d3f4a06d89
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D

View File

@ -47,6 +47,7 @@ use Gdbots\QueryParser\Node\Mention;
use Gdbots\QueryParser\Node\Node;
use Gdbots\QueryParser\Node\Numbr;
use Gdbots\QueryParser\Node\Phrase;
use Gdbots\QueryParser\Node\Subquery;
use Gdbots\QueryParser\Node\Url;
use Gdbots\QueryParser\Node\Word;
use Gdbots\QueryParser\ParsedQuery;
@ -231,6 +232,12 @@ class OperatorQuerySearch implements SearchInterface
default:
Log::error(sprintf('Cannot handle node %s', $class));
throw new FireflyException(sprintf('Firefly III search cant handle "%s"-nodes', $class));
case Subquery::class:
// loop all notes in subquery:
foreach($searchNode->getNodes() as $subNode) {
$this->handleSearchNode($subNode); // lets hope its not too recursive!
}
break;
case Word::class:
case Phrase::class:
case Numbr::class: