diff -r e71ae69c68c0 -r 90dc13c78b5d src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt --- a/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt Wed Dec 15 19:56:05 2021 +0100 +++ b/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt Sat Jun 04 18:02:25 2022 +0200 @@ -28,7 +28,6 @@ import de.uapcore.lightpit.entities.* import de.uapcore.lightpit.types.IssueHistoryType import de.uapcore.lightpit.types.WebColor -import de.uapcore.lightpit.util.* import de.uapcore.lightpit.viewmodel.ComponentSummary import de.uapcore.lightpit.viewmodel.IssueSummary import de.uapcore.lightpit.viewmodel.VersionSummary @@ -509,7 +508,7 @@ return i } - override fun listIssues(filter: IssueFilter): List = + override fun listIssues(project: Project, version: Version?, component: Component?): List = withStatement( """$issueQuery where (not ? or i.project = ?) and @@ -517,41 +516,21 @@ (not ? or component = ?) and (not ? or component is null) """.trimIndent() ) { - fun applyFilter(filter: Filter, fflag: Int, nflag: Int, idcol: Int) { - when (filter) { - is AllFilter -> { - setBoolean(fflag, false) - setBoolean(nflag, false) - setInt(idcol, 0) - } - is NoneFilter -> { - setBoolean(fflag, false) - setBoolean(nflag, true) - setInt(idcol, 0) - } - is SpecificFilter -> { - setBoolean(fflag, true) - setBoolean(nflag, false) - setInt(idcol, filter.obj.id) - } - else -> { - TODO("Implement range filter.") - } + fun applyFilter(search: T?, fflag: Int, nflag: Int, idcol: Int) { + if (search == null) { + setBoolean(fflag, false) + setBoolean(nflag, false) + setInt(idcol, 0) + } else { + setBoolean(fflag, true) + setBoolean(nflag, false) + setInt(idcol, search.id) } } - when (filter.project) { - is AllFilter -> { - setBoolean(1, false) - setInt(2, 0) - } - is SpecificFilter -> { - setBoolean(1, true) - setInt(2, filter.project.obj.id) - } - else -> throw IllegalArgumentException() - } - applyFilter(filter.version, 3, 5, 4) - applyFilter(filter.component, 6, 8, 7) + setBoolean(1, true) + setInt(2, project.id) + applyFilter(version, 3, 5, 4) + applyFilter(component, 6, 8, 7) queryAll { it.extractIssue() } }