use actualbudget_models::ActualbudgetAccount; use actualbudget_schema::actualbudget_schema::accounts::{ self as accounts_schema, dsl::accounts as accounts_table, }; use anyhow::{Context, Result}; use diesel::{ExpressionMethods, OptionalExtension, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection}; pub fn get_all_actualbudget_accounts(connection: &mut SqliteConnection) -> Result> { let actualbudget_accounts = accounts_table .select(ActualbudgetAccount::as_select()) .load(connection) .with_context(|| "failed to get all Actualbudget accounts")?; Ok(actualbudget_accounts) } pub fn get_category_transfers_account(connection: &mut SqliteConnection) -> Result> { let category_transfers_account = accounts_table .filter(accounts_schema::name.eq("Category transfers")) .select(ActualbudgetAccount::as_select()) .first(connection) .optional() .with_context(|| "failed to get Category Transfers account")?; Ok(category_transfers_account) }