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