From 5fa099bfe1f191502e5a99e86b4ec2ad1013dee7 Mon Sep 17 00:00:00 2001 From: Dendy Faist Date: Sun, 5 Oct 2025 08:42:06 +0200 Subject: [PATCH] feat: Filter generic note type retrieval to their own deck --- src/Service/AnkiService.php | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Service/AnkiService.php b/src/Service/AnkiService.php index 532d50f..5dbcf0c 100644 --- a/src/Service/AnkiService.php +++ b/src/Service/AnkiService.php @@ -77,9 +77,20 @@ class AnkiService } /** @return list */ - public function getAllIdsFromClass(string $class): array - { - $query = sprintf('"note:%s"', constant("$class::MODEL_NAME")); + public function getAllIdsFromClass( + string $class, + ?bool $isSuspended = null, + ): array { + $query = sprintf( + '"deck:%s" "note:%s" %s', + constant("$class::DECK"), + constant("$class::MODEL_NAME"), + match ($isSuspended) { + null => '', + true => 'is:suspended', + false => '-is:suspended', + } + ); return $this->request('findNotes', ['query' => $query]); } @@ -88,9 +99,9 @@ class AnkiService * @param class-string $class * @return list */ - public function getAllFromClass(string $class): array + public function getAllFromClass(string $class, ?bool $isSuspended): array { - $ids = $this->getAllIdsFromClass($class); + $ids = $this->getAllIdsFromClass($class, $isSuspended); return $this->getNotes($ids); }