Skip to main content

login_status/common/
account.rs

1use std::env;
2use std::path::PathBuf;
3
4use bpi_rs::{Account, AccountProfile, BpiClient, BpiResult};
5
6pub fn account_path() -> PathBuf {
7    env::var("BPI_ACCOUNT_TOML")
8        .map(PathBuf::from)
9        .unwrap_or_else(|_| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("account.toml"))
10}
11
12pub fn account_profile() -> BpiResult<AccountProfile> {
13    let profile = env::var("BPI_ACCOUNT_PROFILE").unwrap_or_else(|_| "vip".to_string());
14
15    AccountProfile::parse(&profile)
16}
17
18pub fn load_account() -> BpiResult<Account> {
19    Account::load_profile_from_path(account_path(), account_profile()?)
20}
21
22pub fn authenticated_client() -> BpiResult<BpiClient> {
23    BpiClient::builder().account(load_account()?).build()
24}