mirror of
https://github.com/gotson/komga.git
synced 2025-12-21 16:03:03 +01:00
feat(api): filter series by release year
This commit is contained in:
parent
c68951be84
commit
9133f3a441
4 changed files with 9 additions and 2 deletions
|
|
@ -18,6 +18,7 @@ class SeriesSearchWithReadProgress(
|
|||
val genres: Collection<String>? = null,
|
||||
val tags: Collection<String>? = null,
|
||||
val ageRatings: Collection<Int?>? = null,
|
||||
val releaseYears: Collection<String>? = null,
|
||||
val readStatus: Collection<ReadStatus>? = null
|
||||
) : SeriesSearch(
|
||||
libraryIds = libraryIds,
|
||||
|
|
|
|||
|
|
@ -218,6 +218,8 @@ class SeriesDtoDao(
|
|||
val c2 = if (ageRatings.filterNotNull().isNotEmpty()) d.AGE_RATING.`in`(ageRatings.filterNotNull()) else DSL.falseCondition()
|
||||
c = c.and(c1.or(c2))
|
||||
}
|
||||
// cast to String is necessary for SQLite, else the years in the IN block are coerced to Int, even though YEAR for SQLite uses strftime (string)
|
||||
if(!releaseYears.isNullOrEmpty()) c = c.and(DSL.year(bma.RELEASE_DATE).cast(String::class.java).`in`(releaseYears))
|
||||
|
||||
return c
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ class SeriesCollectionController(
|
|||
@RequestParam(name = "genre", required = false) genres: List<String>?,
|
||||
@RequestParam(name = "tag", required = false) tags: List<String>?,
|
||||
@RequestParam(name = "age_rating", required = false) ageRatings: List<String>?,
|
||||
@RequestParam(name = "release_year", required = false) release_years: List<String>?,
|
||||
@RequestParam(name = "unpaged", required = false) unpaged: Boolean = false,
|
||||
@Parameter(hidden = true) page: Pageable
|
||||
): Page<SeriesDto> =
|
||||
|
|
@ -190,7 +191,8 @@ class SeriesCollectionController(
|
|||
languages = languages,
|
||||
genres = genres,
|
||||
tags = tags,
|
||||
ageRatings = ageRatings?.map { it.toIntOrNull() }
|
||||
ageRatings = ageRatings?.map { it.toIntOrNull() },
|
||||
releaseYears = release_years,
|
||||
)
|
||||
|
||||
seriesDtoRepository.findByCollectionId(collection.id, seriesSearch, principal.user.id, pageRequest)
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ class SeriesController(
|
|||
@RequestParam(name = "genre", required = false) genres: List<String>?,
|
||||
@RequestParam(name = "tag", required = false) tags: List<String>?,
|
||||
@RequestParam(name = "age_rating", required = false) ageRatings: List<String>?,
|
||||
@RequestParam(name = "release_year", required = false) release_years: List<String>?,
|
||||
@RequestParam(name = "unpaged", required = false) unpaged: Boolean = false,
|
||||
@Parameter(hidden = true) page: Pageable
|
||||
): Page<SeriesDto> {
|
||||
|
|
@ -107,7 +108,8 @@ class SeriesController(
|
|||
languages = languages,
|
||||
genres = genres,
|
||||
tags = tags,
|
||||
ageRatings = ageRatings?.map { it.toIntOrNull() }
|
||||
ageRatings = ageRatings?.map { it.toIntOrNull() },
|
||||
releaseYears = release_years,
|
||||
)
|
||||
|
||||
return seriesDtoRepository.findAll(seriesSearch, principal.user.id, pageRequest)
|
||||
|
|
|
|||
Loading…
Reference in a new issue