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

changeset 225
87328572e36f
parent 215
028792eda9b7
child 227
f0ede8046b59
     1.1 --- a/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt	Wed Aug 18 12:47:32 2021 +0200
     1.2 +++ b/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt	Wed Aug 18 14:57:45 2021 +0200
     1.3 @@ -28,6 +28,7 @@
     1.4  import de.uapcore.lightpit.AbstractServlet
     1.5  import de.uapcore.lightpit.HttpRequest
     1.6  import de.uapcore.lightpit.dao.DataAccessObject
     1.7 +import de.uapcore.lightpit.dateOptValidator
     1.8  import de.uapcore.lightpit.entities.*
     1.9  import de.uapcore.lightpit.types.IssueCategory
    1.10  import de.uapcore.lightpit.types.IssueStatus
    1.11 @@ -329,12 +330,22 @@
    1.12              node = http.param("node") ?: ""
    1.13              ordinal = http.param("ordinal")?.toIntOrNull() ?: 0
    1.14              status = http.param("status")?.let(VersionStatus::valueOf) ?: VersionStatus.Future
    1.15 +            // TODO: process error messages
    1.16 +            eol =  http.param("eol", ::dateOptValidator, null, mutableListOf())
    1.17 +            release =  http.param("release", ::dateOptValidator, null, mutableListOf())
    1.18              // intentional defaults
    1.19              if (node.isBlank()) node = name
    1.20              // sanitizing
    1.21              node = sanitizeNode(node)
    1.22          }
    1.23  
    1.24 +        // sanitize eol and release date
    1.25 +        if (version.status.isEndOfLife) {
    1.26 +            if (version.eol == null) version.eol = Date(System.currentTimeMillis())
    1.27 +        } else if (version.status.isReleased) {
    1.28 +            if (version.release == null) version.release = Date(System.currentTimeMillis())
    1.29 +        }
    1.30 +
    1.31          if (id < 0) {
    1.32              dao.insertVersion(version)
    1.33          } else {
    1.34 @@ -548,7 +559,8 @@
    1.35                          else -> dao.findUser(it)
    1.36                      }
    1.37                  }
    1.38 -                eta = http.param("eta")?.let { if (it.isBlank()) null else Date.valueOf(it) }
    1.39 +                // TODO: process error messages
    1.40 +                eta = http.param("eta", ::dateOptValidator, null, mutableListOf())
    1.41  
    1.42                  affectedVersions = http.paramArray("affected")
    1.43                      .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } }

mercurial