diff -r da975b1f188d -r 87328572e36f src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt --- 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) } }