def createBaseImage = authAction()

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")
                  }
                )
            }
        }
      )
  }