blob: d499208a145be6ef711484e6560a1b68af352a2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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<Vec<ActualbudgetAccount>> {
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<Option<ActualbudgetAccount>> {
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)
}
|