use axum::{ debug_handler, extract::{Extension, Query, State}, response::{Html, IntoResponse}, }; use rinja::Template; use serde::Deserialize; // use tracing::{event, Level}; use crate::{ data::{db, model}, html_templates::*, translation, Result, }; #[derive(Deserialize)] pub struct CurrentRecipeId { current_recipe_id: Option, } #[debug_handler] pub async fn recipes_list_fragments( State(connection): State, current_recipe: Query, Extension(user): Extension>, Extension(tr): Extension, ) -> Result { let recipes = Recipes { published: connection .get_all_published_recipe_titles(tr.current_lang_code(), user.as_ref().map(|u| u.id)) .await?, unpublished: if let Some(user) = user.as_ref() { connection .get_all_unpublished_recipe_titles(user.id) .await? } else { vec![] }, current_id: current_recipe.current_recipe_id, }; Ok(Html(RecipesListFragmentTemplate { tr, recipes }.render()?)) }