diff --git a/src/client/app.rs b/src/client/app.rs index 3c9f4fe..b154cf1 100644 --- a/src/client/app.rs +++ b/src/client/app.rs @@ -7,7 +7,6 @@ use crate::shared::models::app::{Icon, IconID}; use crate::shared::email::Email; use crate::shared::opaque::UserSecretKey; use crate::shared::user_api::UserAPI; -//https://chatgpt.com/c/69441737-c990-8333-9737-7ac75232da1d struct ClientApp<'a, R, U, C> where diff --git a/src/client/repo.rs b/src/client/repo.rs index 1f61c16..40e8f8a 100644 --- a/src/client/repo.rs +++ b/src/client/repo.rs @@ -8,4 +8,10 @@ pub trait ClientRepo { async fn add_secret_key(&self, email: Email, user_secret_key: UserSecretKey) -> Result<(), String>; async fn remove_secret_key(&self, email: &Email) -> Result<(), String>; async fn add_code_logged_in(&self, email: &Email, login_session: CodeLoggedInSession) -> Result<(), String>; -} \ No newline at end of file +} + + +// TODO: Implement in memory repo + +// TODO: Implement flutter-storage +// https://chatgpt.com/c/69441737-c990-8333-9737-7ac75232da1d \ No newline at end of file diff --git a/src/server/repository/in_memory/in_memory_user_db.rs b/src/server/repository/in_memory/in_memory_user_db.rs index e53ec01..9d3f353 100644 --- a/src/server/repository/in_memory/in_memory_user_db.rs +++ b/src/server/repository/in_memory/in_memory_user_db.rs @@ -1,11 +1,14 @@ use std::collections::HashMap; use std::sync::Arc; use async_trait::async_trait; +use nkode_rs::nkode_core::keypad::Keypad; use tokio::sync::Mutex; use uuid::Uuid; use crate::server::repository::user_repo::UserRepo; -use crate::shared::models::app::{CodeLoggedInSession, CodeLoginData, KeyLoggedInSession}; +use crate::shared::models::app::{CodeLoggedInSession, CodeLoginData, Icon, KeyLoggedInSession}; use crate::shared::email::Email; +use crate::shared::signed_session_data::SignedSessionData; +use crate::shared::user_api::UserAPI; pub struct InMemoryUserDB { key_session: Arc>>, @@ -67,3 +70,26 @@ impl UserRepo for InMemoryUserDB { .ok_or_else(|| "code login data not found for email".to_string()) } } + +#[async_trait] +impl UserAPI for InMemoryUserDB { + async fn get_new_icons(&self) -> Result, String> { + todo!() + } + + async fn get_login_data(&self, session: SignedSessionData) -> Result { + todo!() + } + + async fn is_code_registered(&self, session: SignedSessionData) -> Result { + todo!() + } + + async fn set_code_login_data(&self, session: SignedSessionData) -> Result<(), String> { + todo!() + } + + async fn update_keypad(&self, keypad: SignedSessionData) -> Result<(), String> { + todo!() + } +}