login_status/common/
account.rs1use 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}