+///// EDIT RECIPE /////
+
+#[derive(Template)]
+#[template(path = "edit_recipe.html")]
+struct EditRecipeTemplate {
+ user: Option<User>,
+ recipes: Vec<(i64, String)>,
+ current_recipe_id: Option<i64>,
+ current_recipe: model::Recipe,
+}
+
+#[get("/recipe/edit/{id}")]
+pub async fn edit_recipe(req: HttpRequest, path: web::Path<(i64,)>, connection: web::Data<db::Connection>) -> Result<HttpResponse> {
+ let (id,)= path.into_inner();
+ let user = get_current_user(&req, connection.clone()).await;
+ let recipes = connection.get_all_recipe_titles_async().await?;
+ let recipe = connection.get_recipe_async(id).await?;
+
+ Ok(EditRecipeTemplate {
+ user,
+ current_recipe_id: Some(recipe.id),
+ recipes,
+ current_recipe: recipe,
+ }.to_response())
+}
+