diff options
| author | Kevin Hoerr <kjhoerr@submelon.dev> | 2026-05-04 17:15:24 -0400 |
|---|---|---|
| committer | Kevin Hoerr <kjhoerr@submelon.dev> | 2026-05-04 17:15:24 -0400 |
| commit | 6e34ad603ee0639fdc83a71d5b6c5dfaf7c7d550 (patch) | |
| tree | 2e594ca263c4d2f146f3b0a409ab8542472ee01b /src/app/store | |
| parent | 397f8bd3fd1d36a9703b319c46db34b83950a9b2 (diff) | |
| download | equity-tracker-6e34ad603ee0639fdc83a71d5b6c5dfaf7c7d550.tar.gz equity-tracker-6e34ad603ee0639fdc83a71d5b6c5dfaf7c7d550.tar.bz2 equity-tracker-6e34ad603ee0639fdc83a71d5b6c5dfaf7c7d550.zip | |
Remove counter from store
Diffstat (limited to 'src/app/store')
| -rw-r--r-- | src/app/store/mod.rs | 8 | ||||
| -rw-r--r-- | src/app/store/sqlite.rs | 106 |
2 files changed, 24 insertions, 90 deletions
diff --git a/src/app/store/mod.rs b/src/app/store/mod.rs index 213c4a2..a840976 100644 --- a/src/app/store/mod.rs +++ b/src/app/store/mod.rs @@ -55,8 +55,12 @@ impl Default for AppContext { pub trait Store { fn init(&mut self) -> Result<(), ContextError>; - fn get_counter(&self) -> Result<u8, ContextError>; - fn set_counter(&mut self, new_count: u8) -> Result<u8, ContextError>; + fn get_accounts(&self) -> Result<Vec<FiduciaryAccount>, ContextError>; + fn get_symbols(&self) -> Result<Vec<EquitySymbol>, ContextError>; + fn get_events(&self) -> Result<Vec<EquityChangeEvent>, ContextError>; + fn add_account(&mut self, account: &FiduciaryAccount) -> Result<(), ContextError>; + fn add_symbol(&mut self, symbol: &EquitySymbol) -> Result<(), ContextError>; + fn add_event(&mut self, event: &EquityChangeEvent) -> Result<(), ContextError>; } impl AppContext { diff --git a/src/app/store/sqlite.rs b/src/app/store/sqlite.rs index 0fac2cd..002d0cb 100644 --- a/src/app/store/sqlite.rs +++ b/src/app/store/sqlite.rs @@ -472,29 +472,28 @@ impl Store for SQLiteStore { Ok(()) } - /// Selects counter from `RATAT` table. Since sqlite doesn't scrutinize the - /// value and we have a more restricted datatype (i64 -> u8), we use - /// `try_from` which may produce an error result. - fn get_counter(&self) -> Result<u8, ContextError> { - self.counter.ok_or(ContextError::DataError(sqlite::Error { - code: None, - message: None, - })) + fn get_accounts(&self) -> Result<Vec<FiduciaryAccount>, ContextError> { + self.select_accounts() } - /// Updates row with counter value on `RATAT` table - fn set_counter(&mut self, new_count: u8) -> Result<u8, ContextError> { - if self.counter.is_none() { - Err(sqlite::Error { - code: None, - message: None, - })?; - } - self.counter = Some(new_count); + fn get_symbols(&self) -> Result<Vec<EquitySymbol>, ContextError> { + self.select_symbols() + } - tracing::event!(tracing::Level::DEBUG, new_count, "Updated counter."); + fn get_events(&self) -> Result<Vec<EquityChangeEvent>, ContextError> { + self.select_events() + } - Ok(new_count) + fn add_account(&mut self, account: &FiduciaryAccount) -> Result<(), ContextError> { + self.insert_account(account) + } + + fn add_symbol(&mut self, symbol: &EquitySymbol) -> Result<(), ContextError> { + self.insert_symbol(symbol) + } + + fn add_event(&mut self, event: &EquityChangeEvent) -> Result<(), ContextError> { + self.insert_event(event) } } @@ -525,72 +524,3 @@ mod tests { assert!(context.connection.is_some()); } } - -#[cfg(test)] -mod counter_tests { - use super::*; - - #[test] - fn get_counter() { - let mut context = SQLiteStore::default(); - assert!(context.init().is_ok()); - - let res = context.get_counter(); - - assert!(res.is_ok()); - assert_eq!(res.unwrap(), 0); - } - - #[test] - fn get_counter_error() { - let context = SQLiteStore::default(); - // don't initialize - - let res = context.get_counter(); - - assert!(res.is_err()); - } - - #[test] - fn set_counter() { - let mut context = SQLiteStore::default(); - assert!(context.init().is_ok()); - - let expected = 240; - let res = context.set_counter(expected); - - assert!(res.is_ok()); - assert_eq!(res.unwrap(), expected); - } - - #[test] - fn set_counter_error() { - let mut context = SQLiteStore::default(); - // don't initialize - - let res = context.set_counter(1); - - assert!(res.is_err()); - } - - #[test] - fn set_and_get() { - let mut context = SQLiteStore::default(); - assert!(context.init().is_ok()); - - let count_0 = context.get_counter().unwrap(); - - assert_eq!(count_0, 0); - - let new_num = 244; - let res = context.set_counter(new_num); - - assert!(res.is_ok()); - assert_eq!(res.unwrap(), new_num); - - let count_1 = context.get_counter().unwrap(); - - assert_eq!(count_1, new_num); - assert_ne!(count_0, count_1); - } -} |
