added basic search by name for Series

This commit is contained in:
Gauthier Roebroeck 2019-08-19 14:38:45 +08:00
parent 4bf32fe332
commit f38660b45c
2 changed files with 15 additions and 3 deletions

View file

@ -2,11 +2,12 @@ package org.gotson.komga.domain.persistence
import org.gotson.komga.domain.model.Serie
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.JpaSpecificationExecutor
import org.springframework.stereotype.Repository
import java.net.URL
@Repository
interface SerieRepository : JpaRepository<Serie, Long> {
interface SerieRepository : JpaRepository<Serie, Long>, JpaSpecificationExecutor<Serie> {
fun deleteAllByUrlNotIn(urls: Iterable<URL>)
fun countByUrlNotIn(urls: Iterable<URL>): Long
fun findByUrl(url: URL): Serie?

View file

@ -1,5 +1,6 @@
package org.gotson.komga.interfaces.web
import com.github.klinq.jpaspec.likeLower
import org.gotson.komga.domain.model.Book
import org.gotson.komga.domain.model.Serie
import org.gotson.komga.domain.model.Status
@ -30,8 +31,18 @@ class SerieController(
) {
@GetMapping
fun getAllSeries(page: Pageable) =
serieRepository.findAll(page).map { it.toDto() }
fun getAllSeries(
@RequestParam("search")
searchTerm: String?,
page: Pageable
): Page<SerieDto> =
if (!searchTerm.isNullOrEmpty()) {
val spec = Serie::name.likeLower("%$searchTerm%")
serieRepository.findAll(spec, page)
} else {
serieRepository.findAll(page)
}.map { it.toDto() }
@GetMapping("{id}")
fun getOneSerie(