app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 5b87bfabc89a573da22950dfbb2875479ceb78b8
parent cacdf89bd5d54eb1f06f2a7dc272f3f552d727eb
Author: triesap <triesap@radroots.dev>
Date:   Tue, 20 Jan 2026 18:18:24 +0000

app: rename persisted app data types

- rename AppAppData to RadrootsAppState
- rename AppConfigData to RadrootsAppSettings
- rename AppConfigRole to RadrootsAppRole
- update bootstrap/init/health usages and tests

Diffstat:
Mapp/src/bootstrap.rs | 30+++++++++++++++---------------
Mapp/src/data.rs | 30+++++++++++++++---------------
Mapp/src/health.rs | 8++++----
Mapp/src/init.rs | 8++++----
Mapp/src/lib.rs | 2+-
5 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/app/src/bootstrap.rs b/app/src/bootstrap.rs @@ -6,8 +6,8 @@ use crate::{ app_datastore_obj_key_cfg_data, app_datastore_obj_key_app_data, app_log_debug_emit, - AppAppData, - AppConfigData, + RadrootsAppState, + RadrootsAppSettings, AppInitError, AppInitResult, AppKeyMapConfig, @@ -16,8 +16,8 @@ use crate::{ pub async fn app_datastore_write_config<T: RadrootsClientDatastore>( datastore: &T, key_maps: &AppKeyMapConfig, - data: &AppConfigData, -) -> AppInitResult<AppConfigData> { + data: &RadrootsAppSettings, +) -> AppInitResult<RadrootsAppSettings> { let key = app_datastore_obj_key_cfg_data(key_maps).map_err(AppInitError::Config)?; let value = datastore .set_obj(key, data) @@ -32,7 +32,7 @@ pub async fn app_datastore_has_config<T: RadrootsClientDatastore>( key_maps: &AppKeyMapConfig, ) -> AppInitResult<bool> { let key = app_datastore_obj_key_cfg_data(key_maps).map_err(AppInitError::Config)?; - match datastore.get_obj::<AppConfigData>(key).await { + match datastore.get_obj::<RadrootsAppSettings>(key).await { Ok(_) => Ok(true), Err(RadrootsClientDatastoreError::NoResult) => Ok(false), Err(err) => Err(AppInitError::Datastore(err)), @@ -42,8 +42,8 @@ pub async fn app_datastore_has_config<T: RadrootsClientDatastore>( pub async fn app_datastore_write_app_data<T: RadrootsClientDatastore>( datastore: &T, key_maps: &AppKeyMapConfig, - data: &AppAppData, -) -> AppInitResult<AppAppData> { + data: &RadrootsAppState, +) -> AppInitResult<RadrootsAppState> { let key = app_datastore_obj_key_app_data(key_maps).map_err(AppInitError::Config)?; let value = datastore .set_obj(key, data) @@ -56,10 +56,10 @@ pub async fn app_datastore_write_app_data<T: RadrootsClientDatastore>( pub async fn app_datastore_read_app_data<T: RadrootsClientDatastore>( datastore: &T, key_maps: &AppKeyMapConfig, -) -> AppInitResult<AppAppData> { +) -> AppInitResult<RadrootsAppState> { let key = app_datastore_obj_key_app_data(key_maps).map_err(AppInitError::Config)?; let value = datastore - .get_obj::<AppAppData>(key) + .get_obj::<RadrootsAppState>(key) .await .map_err(AppInitError::Datastore)?; let _ = app_log_debug_emit("log.app.bootstrap.app_data", "read", Some(key.to_string())); @@ -71,7 +71,7 @@ pub async fn app_datastore_has_app_data<T: RadrootsClientDatastore>( key_maps: &AppKeyMapConfig, ) -> AppInitResult<bool> { let key = app_datastore_obj_key_app_data(key_maps).map_err(AppInitError::Config)?; - match datastore.get_obj::<AppAppData>(key).await { + match datastore.get_obj::<RadrootsAppState>(key).await { Ok(_) => Ok(true), Err(RadrootsClientDatastoreError::NoResult) => Ok(false), Err(err) => Err(AppInitError::Datastore(err)), @@ -100,10 +100,10 @@ pub async fn app_datastore_set_notifications_permission<T: RadrootsClientDatasto datastore: &T, key_maps: &AppKeyMapConfig, permission: &str, -) -> AppInitResult<AppAppData> { +) -> AppInitResult<RadrootsAppState> { let mut data = match app_datastore_has_app_data(datastore, key_maps).await? { true => app_datastore_read_app_data(datastore, key_maps).await?, - false => AppAppData::default(), + false => RadrootsAppState::default(), }; data.notifications_permission = Some(permission.to_string()); let value = app_datastore_write_app_data(datastore, key_maps, &data).await?; @@ -121,14 +121,14 @@ mod tests { app_datastore_write_app_data, app_datastore_write_config, }; - use crate::{app_key_maps_default, AppAppData, AppConfigData, AppInitError}; + use crate::{app_key_maps_default, RadrootsAppState, RadrootsAppSettings, AppInitError}; use radroots_app_core::datastore::{RadrootsClientDatastoreError, RadrootsClientWebDatastore}; #[test] fn config_write_maps_idb_errors() { let datastore = RadrootsClientWebDatastore::new(None); let key_maps = app_key_maps_default(); - let data = AppConfigData::default(); + let data = RadrootsAppSettings::default(); let err = futures::executor::block_on(app_datastore_write_config( &datastore, &key_maps, @@ -142,7 +142,7 @@ mod tests { fn app_data_write_maps_idb_errors() { let datastore = RadrootsClientWebDatastore::new(None); let key_maps = app_key_maps_default(); - let data = AppAppData::default(); + let data = RadrootsAppState::default(); let err = futures::executor::block_on(app_datastore_write_app_data( &datastore, &key_maps, diff --git a/app/src/data.rs b/app/src/data.rs @@ -3,26 +3,26 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] -pub enum AppConfigRole { +pub enum RadrootsAppRole { Public, } -impl Default for AppConfigRole { +impl Default for RadrootsAppRole { fn default() -> Self { - AppConfigRole::Public + RadrootsAppRole::Public } } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -pub struct AppConfigData { +pub struct RadrootsAppSettings { pub nostr_public_key: Option<String>, pub nostr_profile: Option<String>, - pub role: Option<AppConfigRole>, + pub role: Option<RadrootsAppRole>, pub nip05_request: Option<bool>, pub nip05_key: Option<String>, } -impl Default for AppConfigData { +impl Default for RadrootsAppSettings { fn default() -> Self { Self { nostr_public_key: None, @@ -35,19 +35,19 @@ impl Default for AppConfigData { } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -pub struct AppAppData { +pub struct RadrootsAppState { pub active_key: String, - pub role: AppConfigRole, + pub role: RadrootsAppRole, pub eula_date: String, pub nip05_key: Option<String>, pub notifications_permission: Option<String>, } -impl Default for AppAppData { +impl Default for RadrootsAppState { fn default() -> Self { Self { active_key: String::new(), - role: AppConfigRole::default(), + role: RadrootsAppRole::default(), eula_date: String::new(), nip05_key: None, notifications_permission: None, @@ -57,16 +57,16 @@ impl Default for AppAppData { #[cfg(test)] mod tests { - use super::{AppAppData, AppConfigData, AppConfigRole}; + use super::{RadrootsAppState, RadrootsAppSettings, RadrootsAppRole}; #[test] fn config_role_defaults_to_public() { - assert_eq!(AppConfigRole::default(), AppConfigRole::Public); + assert_eq!(RadrootsAppRole::default(), RadrootsAppRole::Public); } #[test] fn config_data_defaults_empty() { - let data = AppConfigData::default(); + let data = RadrootsAppSettings::default(); assert!(data.nostr_public_key.is_none()); assert!(data.nostr_profile.is_none()); assert!(data.role.is_none()); @@ -76,9 +76,9 @@ mod tests { #[test] fn app_data_defaults_empty() { - let data = AppAppData::default(); + let data = RadrootsAppState::default(); assert_eq!(data.active_key, ""); - assert_eq!(data.role, AppConfigRole::Public); + assert_eq!(data.role, RadrootsAppRole::Public); assert_eq!(data.eula_date, ""); assert!(data.nip05_key.is_none()); assert!(data.notifications_permission.is_none()); diff --git a/app/src/health.rs b/app/src/health.rs @@ -440,7 +440,7 @@ mod tests { struct TestDatastore { get_result: RadrootsClientDatastoreResult<String>, - app_data: Option<crate::AppAppData>, + app_data: Option<crate::RadrootsAppState>, } fn datastore_err<T>() -> RadrootsClientDatastoreResult<T> { @@ -655,7 +655,7 @@ mod tests { fn health_check_app_data_requires_active_key() { let datastore = TestDatastore { get_result: Ok("pub".to_string()), - app_data: Some(crate::AppAppData::default()), + app_data: Some(crate::RadrootsAppState::default()), }; let key_maps = crate::app_key_maps_default(); let result = futures::executor::block_on(app_health_check_app_data_active_key( @@ -668,7 +668,7 @@ mod tests { #[test] fn health_check_app_data_detects_mismatch() { - let mut app_data = crate::AppAppData::default(); + let mut app_data = crate::RadrootsAppState::default(); app_data.active_key = "other".to_string(); let datastore = TestDatastore { get_result: Ok("pub".to_string()), @@ -685,7 +685,7 @@ mod tests { #[test] fn health_check_app_data_accepts_match() { - let mut app_data = crate::AppAppData::default(); + let mut app_data = crate::RadrootsAppState::default(); app_data.active_key = "pub".to_string(); let datastore = TestDatastore { get_result: Ok("pub".to_string()), diff --git a/app/src/init.rs b/app/src/init.rs @@ -30,9 +30,9 @@ use crate::{ app_assets_sql_wasm_url, app_keystore_nostr_ensure_key, app_log_debug_emit, - AppAppData, + RadrootsAppState, AppConfig, - AppConfigData, + RadrootsAppSettings, AppConfigError, AppKeystoreError, AppKeyMapConfig, @@ -393,7 +393,7 @@ pub async fn app_init_backends(config: AppConfig) -> AppInitResult<AppBackends> let _ = app_log_debug_emit("log.app.init.backends", "datastore_ready", None); let has_config = app_datastore_has_config(&datastore, &config.datastore.key_maps).await?; if !has_config { - let config_data = AppConfigData::default(); + let config_data = RadrootsAppSettings::default(); let _ = app_datastore_write_config(&datastore, &config.datastore.key_maps, &config_data) .await?; @@ -436,7 +436,7 @@ pub async fn app_init_backends(config: AppConfig) -> AppInitResult<AppBackends> let mut app_data = if has_app_data { app_datastore_read_app_data(&datastore, &config.datastore.key_maps).await? } else { - AppAppData::default() + RadrootsAppState::default() }; let should_write = !has_app_data || app_data.active_key != nostr_public_key; if should_write { diff --git a/app/src/lib.rs b/app/src/lib.rs @@ -25,7 +25,7 @@ pub use bootstrap::{ app_datastore_write_config, }; pub use context::{app_context, AppContext}; -pub use data::{AppAppData, AppConfigData, AppConfigRole}; +pub use data::{RadrootsAppState, RadrootsAppSettings, RadrootsAppRole}; pub use health::{ app_health_check_all, app_health_check_all_logged,