aboutsummaryrefslogtreecommitdiffstats
path: root/src/ynab/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ynab/client.rs')
-rw-r--r--src/ynab/client.rs76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/ynab/client.rs b/src/ynab/client.rs
deleted file mode 100644
index 19b456b..0000000
--- a/src/ynab/client.rs
+++ /dev/null
@@ -1,76 +0,0 @@
-#[derive(Debug, snafu::Snafu)]
-pub enum Error {
- // ynab-api error types don't implement Error, so can't use the
- // auto-source behavior
- #[snafu(display("failed to update transactions: {}", source_msg))]
- UpdateTransactions { source_msg: String },
-
- #[snafu(display("failed to get budgets: {}", source_msg))]
- GetBudgets { source_msg: String },
-
- #[snafu(display("failed to get budget {}: {}", id, source_msg))]
- GetBudgetById { id: String, source_msg: String },
-}
-
-pub type Result<T> = std::result::Result<T, Error>;
-
-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) -> Result<ynab_api::models::BudgetDetail> {
- let budget_id = self
- .api
- .budgets_api()
- .get_budgets()
- .map_err(|e| Error::GetBudgets {
- source_msg: format!("{:?}", e),
- })?
- .data
- .budgets
- .iter()
- .next()
- .ok_or_else(|| Error::GetBudgets {
- source_msg: "no budgets found".to_string(),
- })?
- .id
- .clone();
- Ok(self
- .api
- .budgets_api()
- .get_budget_by_id(&budget_id, 0)
- .map_err(|e| Error::GetBudgetById {
- id: budget_id.clone(),
- source_msg: format!("{:?}", e),
- })?
- .data
- .budget)
- }
-
- pub fn update_transactions(
- &self,
- budget_id: &str,
- transactions: ynab_api::models::UpdateTransactionsWrapper,
- ) -> Result<()> {
- self.api
- .transactions_api()
- .update_transactions(budget_id, transactions)
- .map(|_| ())
- .map_err(|e| Error::UpdateTransactions {
- source_msg: format!("{:?}", e),
- })
- }
-}