src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt

changeset 225
87328572e36f
parent 215
028792eda9b7
child 227
f0ede8046b59
--- a/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt	Wed Aug 18 12:47:32 2021 +0200
+++ b/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt	Wed Aug 18 14:57:45 2021 +0200
@@ -28,6 +28,7 @@
 import de.uapcore.lightpit.AbstractServlet
 import de.uapcore.lightpit.HttpRequest
 import de.uapcore.lightpit.dao.DataAccessObject
+import de.uapcore.lightpit.dateOptValidator
 import de.uapcore.lightpit.entities.*
 import de.uapcore.lightpit.types.IssueCategory
 import de.uapcore.lightpit.types.IssueStatus
@@ -329,12 +330,22 @@
             node = http.param("node") ?: ""
             ordinal = http.param("ordinal")?.toIntOrNull() ?: 0
             status = http.param("status")?.let(VersionStatus::valueOf) ?: VersionStatus.Future
+            // TODO: process error messages
+            eol =  http.param("eol", ::dateOptValidator, null, mutableListOf())
+            release =  http.param("release", ::dateOptValidator, null, mutableListOf())
             // intentional defaults
             if (node.isBlank()) node = name
             // sanitizing
             node = sanitizeNode(node)
         }
 
+        // sanitize eol and release date
+        if (version.status.isEndOfLife) {
+            if (version.eol == null) version.eol = Date(System.currentTimeMillis())
+        } else if (version.status.isReleased) {
+            if (version.release == null) version.release = Date(System.currentTimeMillis())
+        }
+
         if (id < 0) {
             dao.insertVersion(version)
         } else {
@@ -548,7 +559,8 @@
                         else -> dao.findUser(it)
                     }
                 }
-                eta = http.param("eta")?.let { if (it.isBlank()) null else Date.valueOf(it) }
+                // TODO: process error messages
+                eta = http.param("eta", ::dateOptValidator, null, mutableListOf())
 
                 affectedVersions = http.paramArray("affected")
                     .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } }

mercurial