use std::sync::Arc; use std::sync::RwLock; use crate::templates::HtmlTemplate; use crate::templates::ListTemplate; use crate::utils; use axum::extract::State; use axum::response::IntoResponse; pub async fn list_files( State(state): State>>>, ) -> impl IntoResponse { let files = state.read().unwrap(); // Adquire lock let template = ListTemplate { files: files.to_vec(), }; HtmlTemplate(template) } pub async fn rescan_files( base_path: String, State(state): State>>>, ) -> impl IntoResponse { let mut files = state.write().unwrap(); // Adquire lock files.clear(); files.extend(utils::find_files(&base_path).expect("Error trying to refresh list")); "Files rescanned successfuly" }