diff --git a/mediarepo-api/src/client_api/tag.rs b/mediarepo-api/src/client_api/tag.rs index c01c591..f9f976b 100644 --- a/mediarepo-api/src/client_api/tag.rs +++ b/mediarepo-api/src/client_api/tag.rs @@ -27,6 +27,12 @@ impl TagApi { Self { ctx } } + /// Returns a list of all tags stored in the repo + #[tracing::instrument(level = "debug", skip(self))] + pub async fn get_all_tags(&self) -> ApiResult> { + self.emit_and_get("all_tags", ()).await + } + /// Returns a list of all tags for a file #[tracing::instrument(level = "debug", skip(self))] pub async fn get_tags_for_file(&self, hash: String) -> ApiResult> { diff --git a/mediarepo-api/src/tauri_plugin/commands/tag.rs b/mediarepo-api/src/tauri_plugin/commands/tag.rs index 3e6b136..72e753f 100644 --- a/mediarepo-api/src/tauri_plugin/commands/tag.rs +++ b/mediarepo-api/src/tauri_plugin/commands/tag.rs @@ -2,6 +2,14 @@ use crate::tauri_plugin::commands::ApiAccess; use crate::tauri_plugin::error::PluginResult; use crate::types::tags::TagResponse; +#[tauri::command] +pub async fn get_all_tags(api_state: ApiAccess<'_>) -> PluginResult> { + let api = api_state.api().await?; + let all_tags = api.tag.get_all_tags().await?; + + Ok(all_tags) +} + #[tauri::command] pub async fn get_tags_for_file( hash: String, diff --git a/mediarepo-api/src/tauri_plugin/mod.rs b/mediarepo-api/src/tauri_plugin/mod.rs index 6436aa7..76507ee 100644 --- a/mediarepo-api/src/tauri_plugin/mod.rs +++ b/mediarepo-api/src/tauri_plugin/mod.rs @@ -33,6 +33,7 @@ impl MediarepoPlugin { get_file_thumbnails, read_thumbnail, get_repositories, + get_all_tags, get_tags_for_file, get_active_repository, add_repository,