diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt index c02d4cafc..cb2514fd3 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt @@ -8,6 +8,7 @@ import org.gotson.komga.application.service.AsyncOrchestrator import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.Series +import org.gotson.komga.domain.model.SeriesMetadata import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.domain.persistence.SeriesRepository import org.gotson.komga.infrastructure.security.KomgaPrincipal @@ -55,6 +56,7 @@ class SeriesController( @AuthenticationPrincipal principal: KomgaPrincipal, @RequestParam(name = "search", required = false) searchTerm: String?, @RequestParam(name = "library_id", required = false) libraryIds: List?, + @RequestParam(name = "status", required = false) metadataStatus: List?, page: Pageable ): Page { val pageRequest = PageRequest.of( @@ -86,6 +88,10 @@ class SeriesController( specs.add(Series::name.likeLower("%$searchTerm%")) } + if (!metadataStatus.isNullOrEmpty()) { + specs.add(Series::metadata.toJoin().where(SeriesMetadata::status).`in`(metadataStatus)) + } + if (specs.isNotEmpty()) { seriesRepository.findAll(specs.reduce { acc, spec -> acc.and(spec)!! }, pageRequest) } else {