def deleteRecipe()

in app/controllers/RecipeController.scala [305:329]


  def deleteRecipe(id: RecipeId) = authAction { implicit request =>
    Recipes.findById(id).fold[Result](NotFound) { recipe =>
      val bakes = Bakes.list(recipe.id)
      val recipeUsage: RecipeUsage = RecipeUsage(bakes)(prismAgents)
      if (recipeUsage.bakeUsage.nonEmpty) {
        Conflict(
          s"Can't delete recipe $id as it is still used by ${recipeUsage.bakeUsage.size} resources."
        )
      } else {
        log.info(
          s"Deleting recipe ${id} - requested by ${request.user.email}"
        )
        // stop any scheduled build
        bakeScheduler.reschedule(recipe.copy(bakeSchedule = None))

        // delete the AMIgo data
        bakes.foreach { bake =>
          Bakes.markToDelete(bake.bakeId)
        }
        Recipes.delete(recipe)
        // redirect back to the index page
        Redirect(routes.RecipeController.listRecipes())
      }
    }
  }