From 909badee565c8e5164890b71da6a03b9efe16b28 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 11 Aug 2019 17:45:28 -0400 Subject: refactor --- src/ynab/client.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/ynab/client.rs (limited to 'src/ynab/client.rs') diff --git a/src/ynab/client.rs b/src/ynab/client.rs new file mode 100644 index 0000000..a2fbdb3 --- /dev/null +++ b/src/ynab/client.rs @@ -0,0 +1,31 @@ +pub struct Client { + api: ynab_api::apis::client::APIClient, +} + +impl Client { + pub fn new(key: &str) -> Self { + let mut ynab_config = + ynab_api::apis::configuration::Configuration::new(); + ynab_config.api_key = Some(ynab_api::apis::configuration::ApiKey { + prefix: Some("Bearer".to_string()), + key: key.to_string(), + }); + Self { + api: ynab_api::apis::client::APIClient::new(ynab_config), + } + } + + pub fn default_budget(&self) -> super::budget::Budget { + let budgets = + self.api.budgets_api().get_budgets().unwrap().data.budgets; + let budget = budgets.iter().next().unwrap(); + let full_budget = self + .api + .budgets_api() + .get_budget_by_id(&budget.id, 0) + .unwrap() + .data + .budget; + super::budget::Budget::new(&self.api, full_budget) + } +} -- cgit v1.2.3-54-g00ecf