def showTasks()

in riff-raff/app/controllers/PreviewController.scala [59:110]


  def showTasks(previewId: String) = authAction.async { implicit request =>
    val maybeResult = coordinator.getPreviewResult(UUID.fromString(previewId))
    maybeResult match {
      case Some(result) if result.future.isCompleted =>
        result.future
          .map { preview =>
            preview.graph match {
              case Valid(taskGraph) =>
                val deploymentKeys = taskGraph.toList.map(_._1)
                val totalKeyCount = preview.parameters.selector match {
                  case All => Some(deploymentKeys.size)
                  case _   => None
                }
                logger.info(s"Deployment keys: $deploymentKeys")
                val form = DeployParameterForm.form.fill(
                  DeployParameterForm(
                    preview.parameters.build.projectName,
                    preview.parameters.build.id,
                    preview.parameters.stage.name,
                    "n/a",
                    deploymentKeys,
                    totalKeyCount,
                    updateStrategy = preview.parameters.updateStrategy
                  )
                )
                Ok(
                  views.html.preview.yaml
                    .showTasks(taskGraph, form, deploymentKeys)
                )
              case Invalid(errors) =>
                Ok(
                  views.html.validation
                    .validationErrors(config, menu)(request, errors)
                )
            }
          }
          .recover { case NonFatal(t) =>
            Ok(views.html.errorContent(t, "Preview failed"))
          }
      case Some(result) =>
        Future.successful(
          Ok(
            views.html.preview.yaml
              .loading(request, result.duration.getStandardSeconds)
          )
        )
      case None =>
        Future.successful(
          NotFound(s"Preview with ID $previewId doesn't exist.")
        )
    }
  }