diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-08 15:22:50 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-08 15:22:50 +0000 |
| commit | b9244f6049c685c2b983632359676521506f8772 (patch) | |
| tree | ad553b4c120f9bd0b3807d9f516845ab1de49cee /schist_desktop_gui/src/gui.rs | |
| parent | 5b592ca899ad5a9090c1acd5776221f79e44d121 (diff) | |
task-085: fetches transactions from database
Diffstat (limited to 'schist_desktop_gui/src/gui.rs')
| -rw-r--r-- | schist_desktop_gui/src/gui.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/schist_desktop_gui/src/gui.rs b/schist_desktop_gui/src/gui.rs index 26f147b..9648ff0 100644 --- a/schist_desktop_gui/src/gui.rs +++ b/schist_desktop_gui/src/gui.rs @@ -7,8 +7,10 @@ use std::{path::PathBuf, str::FromStr}; use diesel::SqliteConnection; use iced::{Element, Task}; -use schist_models::{Account, Bucket}; -use schist_queries::{accounts::get_all_accounts, buckets::get_all_buckets}; +use schist_models::{Account, Bucket, Transaction}; +use schist_queries::{ + accounts::get_all_accounts, buckets::get_all_buckets, transactions::get_all_transactions, +}; use crate::{ cache::{put_to_cache, remove_from_cache, CACHE_KEYS}, @@ -32,6 +34,7 @@ pub enum Message { MainScreenMessage(main_screen::Message), RefetchedAccounts(FetchResult<Vec<Account>>), RefetchedBuckets(FetchResult<Vec<Bucket>>), + RefetchedTransactions(FetchResult<Vec<Transaction>>), } pub type FetchResult<T> = std::result::Result<T, FetchError>; @@ -185,6 +188,16 @@ impl Gui { } iced::Task::none() } + Message::RefetchedTransactions(transactions) => { + match transactions { + Ok(transactions) => { + self.main_screen + .update(main_screen::Message::SetTransactions(transactions)); + } + Err(err) => println!("Failed to get transactions: {:?}", err.message), + }; + Task::none() + } Message::FilesScreenMessage(message) => self.update_files_screen(message), Message::FailedToCreateFile(err) => { self.update_files_screen(files_screen::Message::ReportFailedToCreateFile(err)) @@ -226,6 +239,7 @@ impl Gui { ) -> Task<Message> { let buckets = get_all_buckets(&mut connection).map_err(FetchError::new); let accounts = get_all_accounts(&mut connection).map_err(FetchError::new); + let transactions = get_all_transactions(&mut connection).map_err(FetchError::new); self.connection = Some(connection); self.active_screen = Screen::MainScreen; if let Some(path) = path.to_str() { @@ -236,6 +250,7 @@ impl Gui { iced::Task::batch(vec![ self.update(Message::RefetchedBuckets(buckets)), self.update(Message::RefetchedAccounts(accounts)), + self.update(Message::RefetchedTransactions(transactions)), ]) } |
