Implemented debug logging to debug_logs/

This commit is contained in:
2025-11-21 17:04:31 +01:00
parent 5eba24cb87
commit cd000061b4
10 changed files with 228 additions and 13 deletions

View File

@@ -5,7 +5,8 @@ edition.workspace = true
authors.workspace = true
[dependencies]
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] }
reqwest = { workspace = true, default-features = false, features = ["json", "rustls-tls"] }
reqwest-middleware = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }

View File

@@ -1,4 +1,5 @@
use reqwest::{Client, Url};
use reqwest::Url;
use reqwest_middleware::ClientWithMiddleware;
use serde::de::DeserializeOwned;
use thiserror::Error;
use tracing::instrument;
@@ -8,6 +9,8 @@ use crate::models::{AccountArray, TransactionStore, TransactionArray, Transactio
pub enum FireflyError {
#[error("Request failed: {0}")]
RequestFailed(#[from] reqwest::Error),
#[error("Middleware error: {0}")]
MiddlewareError(#[from] reqwest_middleware::Error),
#[error("API Error: {0}")]
ApiError(String),
#[error("URL Parse Error: {0}")]
@@ -16,15 +19,19 @@ pub enum FireflyError {
pub struct FireflyClient {
base_url: Url,
client: Client,
client: ClientWithMiddleware,
access_token: String,
}
impl FireflyClient {
pub fn new(base_url: &str, access_token: &str) -> Result<Self, FireflyError> {
Self::with_client(base_url, access_token, None)
}
pub fn with_client(base_url: &str, access_token: &str, client: Option<ClientWithMiddleware>) -> Result<Self, FireflyError> {
Ok(Self {
base_url: Url::parse(base_url)?,
client: Client::new(),
client: client.unwrap_or_else(|| reqwest_middleware::ClientBuilder::new(reqwest::Client::new()).build()),
access_token: access_token.to_string(),
})
}