From 1c4894df9a16407ece2ea0593dc8b48f1c9e45b8 Mon Sep 17 00:00:00 2001 From: Savanni D'Gerinel Date: Tue, 18 Feb 2025 21:36:01 -0500 Subject: [PATCH] Start on the client module --- visions/ui/src/client.rs | 39 +++++++++++++++++++++++++++++++++++++++ visions/ui/src/main.rs | 15 +++++++++------ 2 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 visions/ui/src/client.rs diff --git a/visions/ui/src/client.rs b/visions/ui/src/client.rs new file mode 100644 index 0000000..cd9d015 --- /dev/null +++ b/visions/ui/src/client.rs @@ -0,0 +1,39 @@ +use gloo_net::http::Request; +use serde::Deserialize; + +#[derive(Deserialize)] +enum AuthResponse { + Ok(SessionId), + PasswordReset(SessionId), +} + +#[derive(Deserialize)] +struct SessionId(String); + +enum ClientError { + Unauthorized, +} + +#[derive(Deserialize)] +struct UserId(String); + +#[derive(Deserialize)] +struct UserInfo { + id: UserId, + name: String, +} + +trait Client { + async fn auth(username: String, password: String) -> Result; + async fn list_users(session_id: SessionId) -> Result, ClientError>; +} + +impl Client for Connection { + async fn auth(username: String, password: String) -> Result { + let request = Request::post("http://localhost:8001") + .body().unwrap(); + } + + async fn list_users(session_id: SessionId) -> Result, ClientError> { + } +} diff --git a/visions/ui/src/main.rs b/visions/ui/src/main.rs index 99cc11d..e305174 100644 --- a/visions/ui/src/main.rs +++ b/visions/ui/src/main.rs @@ -2,6 +2,9 @@ use std::rc::Rc; use yew::prelude::*; +mod client; +pub use client::*; + struct AuthInfo { session_id: Option, } @@ -44,12 +47,12 @@ fn Login(LoginProps { on_click }: &LoginProps) -> Html { }; html! { } }