implement icon management and update client app state

This commit is contained in:
2025-12-19 14:22:28 -06:00
parent 3bb3ccf18c
commit f49aa97b0f
8 changed files with 218 additions and 66 deletions

View File

@@ -1,4 +1,4 @@
use crate::shared::models::app::{AuthAPI, CodeLoggedInSession, CodeLoginData, Icon, KeyLoggedInSession};
use crate::shared::models::app::{AuthAPI, CodeLoggedInSession, CodeLoginData, Icon, KeyLoggedInSession, RegisterCodeData};
use crate::shared::email::Email;
use crate::shared::opaque::UserSecretKey;
use anyhow::Result;
@@ -32,12 +32,12 @@ where
self.opaque_key_register.register(&auth_data).await.map_err(|e| format!("error: {}", e))
}
async fn register_code(&self, email: &Email, passcode: &[u64], key_login_session: &KeyLoggedInSession, data: CodeLoginData) -> Result<(), String> {
async fn register_code(&self, email: &Email, passcode: &[u64], key_login_session: &KeyLoggedInSession, register_code_data: RegisterCodeData) -> Result<(), String> {
let auth_data = OpaqueAuthData::from_code(email.as_str(), passcode);
self.opaque_code_register.register(&auth_data).await.map_err(|e| format!("error: {}", e))?;
let signed_session = SignedSessionData::new(
key_login_session.0.session_id,
data,
register_code_data,
&key_login_session.0.session_key
).map_err(|e| format!("error: {e:?}"))?;
self.user_api.set_code_login_data(signed_session).await
@@ -64,7 +64,8 @@ where
async fn get_new_icons(
&self,
) -> Result<Vec<Icon>, String> {
self.user_api.get_new_icons().await
let total_props = self.get_policy().await?.keypad_dimension().total_props();
self.user_api.get_new_icons(total_props).await
}
async fn get_login_data(