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

changeset 225
87328572e36f
parent 215
028792eda9b7
child 227
f0ede8046b59
equal deleted inserted replaced
224:da975b1f188d 225:87328572e36f
26 package de.uapcore.lightpit.servlet 26 package de.uapcore.lightpit.servlet
27 27
28 import de.uapcore.lightpit.AbstractServlet 28 import de.uapcore.lightpit.AbstractServlet
29 import de.uapcore.lightpit.HttpRequest 29 import de.uapcore.lightpit.HttpRequest
30 import de.uapcore.lightpit.dao.DataAccessObject 30 import de.uapcore.lightpit.dao.DataAccessObject
31 import de.uapcore.lightpit.dateOptValidator
31 import de.uapcore.lightpit.entities.* 32 import de.uapcore.lightpit.entities.*
32 import de.uapcore.lightpit.types.IssueCategory 33 import de.uapcore.lightpit.types.IssueCategory
33 import de.uapcore.lightpit.types.IssueStatus 34 import de.uapcore.lightpit.types.IssueStatus
34 import de.uapcore.lightpit.types.VersionStatus 35 import de.uapcore.lightpit.types.VersionStatus
35 import de.uapcore.lightpit.types.WebColor 36 import de.uapcore.lightpit.types.WebColor
327 val version = Version(id, project.id).apply { 328 val version = Version(id, project.id).apply {
328 name = http.param("name") ?: "" 329 name = http.param("name") ?: ""
329 node = http.param("node") ?: "" 330 node = http.param("node") ?: ""
330 ordinal = http.param("ordinal")?.toIntOrNull() ?: 0 331 ordinal = http.param("ordinal")?.toIntOrNull() ?: 0
331 status = http.param("status")?.let(VersionStatus::valueOf) ?: VersionStatus.Future 332 status = http.param("status")?.let(VersionStatus::valueOf) ?: VersionStatus.Future
333 // TODO: process error messages
334 eol = http.param("eol", ::dateOptValidator, null, mutableListOf())
335 release = http.param("release", ::dateOptValidator, null, mutableListOf())
332 // intentional defaults 336 // intentional defaults
333 if (node.isBlank()) node = name 337 if (node.isBlank()) node = name
334 // sanitizing 338 // sanitizing
335 node = sanitizeNode(node) 339 node = sanitizeNode(node)
340 }
341
342 // sanitize eol and release date
343 if (version.status.isEndOfLife) {
344 if (version.eol == null) version.eol = Date(System.currentTimeMillis())
345 } else if (version.status.isReleased) {
346 if (version.release == null) version.release = Date(System.currentTimeMillis())
336 } 347 }
337 348
338 if (id < 0) { 349 if (id < 0) {
339 dao.insertVersion(version) 350 dao.insertVersion(version)
340 } else { 351 } else {
546 -1 -> null 557 -1 -> null
547 -2 -> component?.lead 558 -2 -> component?.lead
548 else -> dao.findUser(it) 559 else -> dao.findUser(it)
549 } 560 }
550 } 561 }
551 eta = http.param("eta")?.let { if (it.isBlank()) null else Date.valueOf(it) } 562 // TODO: process error messages
563 eta = http.param("eta", ::dateOptValidator, null, mutableListOf())
552 564
553 affectedVersions = http.paramArray("affected") 565 affectedVersions = http.paramArray("affected")
554 .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } } 566 .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } }
555 resolvedVersions = http.paramArray("resolved") 567 resolvedVersions = http.paramArray("resolved")
556 .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } } 568 .mapNotNull { param -> param.toIntOrNull()?.let { Version(it, project.id) } }

mercurial