From 467f89c104df40904ef4c6b408507e90fe661724 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 30 May 2024 12:49:22 +0100 Subject: feat(ui): add login/register dialog (#2056) --- ui/backend/src/main.rs | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'ui/backend/src/main.rs') diff --git a/ui/backend/src/main.rs b/ui/backend/src/main.rs index 62f833f3..88c9ae87 100644 --- a/ui/backend/src/main.rs +++ b/ui/backend/src/main.rs @@ -77,7 +77,41 @@ async fn config() -> Result { #[tauri::command] async fn session() -> Result { - Settings::new().map_err(|e|e.to_string())?.session_token().map_err(|e|e.to_string()) + Settings::new() + .map_err(|e| e.to_string())? + .session_token() + .map_err(|e| e.to_string()) +} + +#[tauri::command] +async fn login(username: String, password: String, key: String) -> Result { + let settings = Settings::new().map_err(|e| e.to_string())?; + + let record_store_path = PathBuf::from(settings.record_store_path.as_str()); + let store = SqliteStore::new(record_store_path, settings.local_timeout) + .await + .map_err(|e| e.to_string())?; + + if settings.logged_in() { + return Err(String::from("Already logged in")); + } + + let session = atuin_client::login::login(&settings, &store, username, password, key) + .await + .map_err(|e| e.to_string())?; + + Ok(session) +} + +#[tauri::command] +async fn register(username: String, email: String, password: String) -> Result { + let settings = Settings::new().map_err(|e| e.to_string())?; + + let session = atuin_client::register::register(&settings, username, email, password) + .await + .map_err(|e| e.to_string())?; + + Ok(session) } #[tauri::command] @@ -88,7 +122,6 @@ async fn home_info() -> Result { .await .map_err(|e| e.to_string())?; - let last_sync = Settings::last_sync() .map_err(|e| e.to_string())? .format(&Rfc3339) @@ -110,7 +143,10 @@ async fn home_info() -> Result { } else { let client = atuin_client::api_client::Client::new( &settings.sync_address, - settings.session_token().map_err(|e|e.to_string())?.as_str(), + settings + .session_token() + .map_err(|e| e.to_string())? + .as_str(), settings.network_connect_timeout, settings.network_timeout, ) @@ -139,6 +175,8 @@ fn main() { home_info, config, session, + login, + register, dotfiles::aliases::import_aliases, dotfiles::aliases::delete_alias, dotfiles::aliases::set_alias, -- cgit v1.3.1