src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt

changeset 248
90dc13c78b5d
parent 245
97b4d0605318
child 257
c1be672af7ff
     1.1 --- a/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt	Wed Dec 15 19:56:05 2021 +0100
     1.2 +++ b/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt	Sat Jun 04 18:02:25 2022 +0200
     1.3 @@ -28,7 +28,6 @@
     1.4  import de.uapcore.lightpit.entities.*
     1.5  import de.uapcore.lightpit.types.IssueHistoryType
     1.6  import de.uapcore.lightpit.types.WebColor
     1.7 -import de.uapcore.lightpit.util.*
     1.8  import de.uapcore.lightpit.viewmodel.ComponentSummary
     1.9  import de.uapcore.lightpit.viewmodel.IssueSummary
    1.10  import de.uapcore.lightpit.viewmodel.VersionSummary
    1.11 @@ -509,7 +508,7 @@
    1.12          return i
    1.13      }
    1.14  
    1.15 -    override fun listIssues(filter: IssueFilter): List<Issue> =
    1.16 +    override fun listIssues(project: Project, version: Version?, component: Component?): List<Issue> =
    1.17          withStatement(
    1.18              """$issueQuery where
    1.19                  (not ? or i.project = ?) and 
    1.20 @@ -517,41 +516,21 @@
    1.21                  (not ? or component = ?) and (not ? or component is null)
    1.22              """.trimIndent()
    1.23          ) {
    1.24 -            fun <T : Entity> applyFilter(filter: Filter<T>, fflag: Int, nflag: Int, idcol: Int) {
    1.25 -                when (filter) {
    1.26 -                    is AllFilter -> {
    1.27 -                        setBoolean(fflag, false)
    1.28 -                        setBoolean(nflag, false)
    1.29 -                        setInt(idcol, 0)
    1.30 -                    }
    1.31 -                    is NoneFilter -> {
    1.32 -                        setBoolean(fflag, false)
    1.33 -                        setBoolean(nflag, true)
    1.34 -                        setInt(idcol, 0)
    1.35 -                    }
    1.36 -                    is SpecificFilter -> {
    1.37 -                        setBoolean(fflag, true)
    1.38 -                        setBoolean(nflag, false)
    1.39 -                        setInt(idcol, filter.obj.id)
    1.40 -                    }
    1.41 -                    else -> {
    1.42 -                        TODO("Implement range filter.")
    1.43 -                    }
    1.44 +            fun <T : Entity> applyFilter(search: T?, fflag: Int, nflag: Int, idcol: Int) {
    1.45 +                if (search == null) {
    1.46 +                    setBoolean(fflag, false)
    1.47 +                    setBoolean(nflag, false)
    1.48 +                    setInt(idcol, 0)
    1.49 +                } else {
    1.50 +                    setBoolean(fflag, true)
    1.51 +                    setBoolean(nflag, false)
    1.52 +                    setInt(idcol, search.id)
    1.53                  }
    1.54              }
    1.55 -            when (filter.project) {
    1.56 -                is AllFilter -> {
    1.57 -                    setBoolean(1, false)
    1.58 -                    setInt(2, 0)
    1.59 -                }
    1.60 -                is SpecificFilter -> {
    1.61 -                    setBoolean(1, true)
    1.62 -                    setInt(2, filter.project.obj.id)
    1.63 -                }
    1.64 -                else -> throw IllegalArgumentException()
    1.65 -            }
    1.66 -            applyFilter(filter.version, 3, 5, 4)
    1.67 -            applyFilter(filter.component, 6, 8, 7)
    1.68 +            setBoolean(1, true)
    1.69 +            setInt(2, project.id)
    1.70 +            applyFilter(version, 3, 5, 4)
    1.71 +            applyFilter(component, 6, 8, 7)
    1.72  
    1.73              queryAll { it.extractIssue() }
    1.74          }

mercurial