use std::collections::HashMap; use actualbudget_models::{ActualbudgetAccount, ActualbudgetCategory}; use actualbudget_queries::{actualbudget_accounts::get_all_actualbudget_accounts, actualbudget_categories::get_all_actualbudget_categories}; use diesel::SqliteConnection; use super::{account_names::ACCOUNT_NAMES, category_names::CATEGORY_NAMES}; pub fn get_accounts(connection: &mut SqliteConnection) -> HashMap { let accounts = get_all_actualbudget_accounts(connection).expect("failed to get accounts"); let mut accounts_hash_map = HashMap::new(); for &account_name in ACCOUNT_NAMES { let account = accounts .clone() .into_iter() .find(|a| a.name.as_str() == account_name) .expect(&format!("failed to get account: {}", account_name)); accounts_hash_map.insert( String::from(account_name), account, ); } accounts_hash_map } pub fn get_categories(connection: &mut SqliteConnection) -> HashMap { let categories = get_all_actualbudget_categories(connection).expect("failed to get categories"); let mut categories_hash_map = HashMap::new(); for &category_name in CATEGORY_NAMES { let category = categories .clone() .into_iter() .find(|a| a.name.as_str() == category_name) .expect(&format!("failed to get category: {}", category_name)); categories_hash_map.insert( String::from(category_name), category, ); } categories_hash_map }