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

changeset 225
87328572e36f
parent 215
028792eda9b7
child 227
f0ede8046b59
--- a/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt	Wed Aug 18 12:47:32 2021 +0200
+++ b/src/main/kotlin/de/uapcore/lightpit/dao/PostgresDataAccessObject.kt	Wed Aug 18 14:57:45 2021 +0200
@@ -129,17 +129,19 @@
             executeUpdate()
         }
     }
-//</editor-fold>
+    //</editor-fold>
 
     //<editor-fold desc="Version">
     //language=SQL
-    private val versionQuery = "select versionid, project, name, node, ordinal, status from lpit_version"
+    private val versionQuery = "select versionid, project, name, node, ordinal, status, release, eol from lpit_version"
 
     private fun ResultSet.extractVersion() =
         Version(getInt("versionid"), getInt("project")).apply {
             name = getString("name")
             node = getString("node")
             ordinal = getInt("ordinal")
+            release = getDate("release")
+            eol = getDate("eol")
             status = getEnum("status")
         }
 
@@ -171,7 +173,7 @@
                 from lpit_version v
                 left join issues using (versionid)
             )
-            select v.versionid, project, name, node, ordinal, status,
+            select v.versionid, project, name, node, ordinal, status, release, eol,
                 ro.total as resolved_open, ra.total as resolved_active, rd.total as resolved_done,
                 ao.total as affected_open, aa.total as affected_active, ad.total as affected_done
             from lpit_version v
@@ -212,13 +214,15 @@
         }
 
     override fun insertVersion(version: Version) {
-        withStatement("insert into lpit_version (name, node, ordinal, status, project) values (?, ?, ?, ?::version_status, ?)") {
+        withStatement("insert into lpit_version (name, node, ordinal, status, project, release, eol) values (?, ?, ?, ?::version_status, ?, ?, ?)") {
             with(version) {
                 setStringSafe(1, name)
                 setStringSafe(2, node)
                 setInt(3, ordinal)
                 setEnum(4, status)
                 setInt(5, version.projectid)
+                setDateOrNull(6, version.release)
+                setDateOrNull(7, version.eol)
             }
             executeUpdate()
         }
@@ -226,18 +230,20 @@
     }
 
     override fun updateVersion(version: Version) {
-        withStatement("update lpit_version set name = ?, node = ?, ordinal = ?, status = ?::version_status where versionid = ?") {
+        withStatement("update lpit_version set name = ?, node = ?, ordinal = ?, status = ?::version_status, release=?,eol=? where versionid = ?") {
             with(version) {
                 setStringSafe(1, name)
                 setStringSafe(2, node)
                 setInt(3, ordinal)
                 setEnum(4, status)
-                setInt(5, id)
+                setDateOrNull(5, version.release)
+                setDateOrNull(6, version.eol)
+                setInt(7, id)
             }
             executeUpdate()
         }
     }
-//</editor-fold>
+    //</editor-fold>
 
     //<editor-fold desc="Component">
     //language=SQL
@@ -347,9 +353,9 @@
         }
     }
 
-//</editor-fold>
+    //</editor-fold>
 
-//<editor-fold desc="Project">
+    //<editor-fold desc="Project">
 
     //language=SQL
     private val projectQuery =
@@ -441,9 +447,9 @@
             }
         }
 
-//</editor-fold>
+    //</editor-fold>
 
-//<editor-fold desc="Issue">
+    //<editor-fold desc="Issue">
 
     //language=SQL
     private val issueQuery =
@@ -485,19 +491,24 @@
         }
 
         //language=SQL
-        fun versionQuery(table: String) =
+        val queryAffected =
             """
-            select versionid, project, name, status, ordinal, node
-            from lpit_version join $table using (versionid)
-            where issueid = ?
-            order by ordinal, name
+            $versionQuery join lpit_issue_affected_version using (versionid)
+            where issueid = ? order by ordinal, name
             """.trimIndent()
 
-        issue.affectedVersions = withStatement(versionQuery("lpit_issue_affected_version")) {
+        //language=SQL
+        val queryResolved =
+            """
+            $versionQuery join lpit_issue_resolved_version using (versionid)
+            where issueid = ? order by ordinal, name
+            """.trimIndent()
+
+        issue.affectedVersions = withStatement(queryAffected) {
             setInt(1, issue.id)
             queryAll { it.extractVersion() }
         }
-        issue.resolvedVersions = withStatement(versionQuery("lpit_issue_resolved_version")) {
+        issue.resolvedVersions = withStatement(queryResolved) {
             setInt(1, issue.id)
             queryAll { it.extractVersion() }
         }
@@ -640,9 +651,9 @@
         insertVersionInfo(issue.id, issue)
     }
 
-//</editor-fold>
+    //</editor-fold>
 
-//<editor-fold desc="IssueComment">
+    //<editor-fold desc="IssueComment">
 
     private fun ResultSet.extractIssueComment() =
         IssueComment(getInt("commentid"), getInt("issueid")).apply {
@@ -693,5 +704,5 @@
             }
         }
     }
-//</editor-fold>
+    //</editor-fold>
 }
\ No newline at end of file

mercurial