in app/controllers/BaseImageController.scala [112:165]
def createBaseImage = authAction(parse.formUrlEncoded) { implicit request =>
Forms.createBaseImage
.bindFromRequest()
.fold(
{ formWithErrors =>
BadRequest(views.html.newBaseImage(formWithErrors, Roles.listIds))
},
{
case (
id,
description,
amiId,
linuxDist,
eolDate,
requiresXLargeBuilder
) =>
BaseImages.findById(id) match {
case Some(existingImage) =>
val formWithError = Forms.createBaseImage
.fill(
(
id,
description,
amiId,
linuxDist,
eolDate,
requiresXLargeBuilder
)
)
.withError("id", "This base image ID is already in use")
Conflict(views.html.newBaseImage(formWithError, Roles.listIds))
case None =>
val customisedRoles = parseEnabledRoles(request.body)
customisedRoles.fold(
error => BadRequest(s"Problem parsing roles: $error"),
roles => {
BaseImages.create(
id,
description,
amiId,
roles,
createdBy = request.user.fullName,
linuxDist,
Some(new DateTime(eolDate)),
requiresXLargeBuilder
)
Redirect(routes.BaseImageController.showBaseImage(id))
.flashing("info" -> "Successfully created base image")
}
)
}
}
)
}