From a205f80bc560c35b554d8e8f06895c30508ec7ed Mon Sep 17 00:00:00 2001 From: Aaron Manning Date: Sun, 9 Feb 2025 17:13:25 +1100 Subject: [PATCH] 0.1.4 correct url encoding of query parameters --- Cargo.toml | 3 ++- src/v1/accounts.rs | 4 ++-- src/v1/categories.rs | 2 +- src/v1/transactions.rs | 10 +++++----- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3e0f364..05c18fe 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "up-api" -version = "0.1.3" +version = "0.1.4" edition = "2021" description = "A convenient and easy to use wrapper for the Up Bank API." license = "MIT OR Apache-2.0" @@ -12,3 +12,4 @@ reqwest = "0.11.11" url = "2.2.2" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +urlencoding = "2.1.3" diff --git a/src/v1/accounts.rs b/src/v1/accounts.rs index 31459d5..f4532a9 100755 --- a/src/v1/accounts.rs +++ b/src/v1/accounts.rs @@ -116,14 +116,14 @@ impl ListAccountsOptions { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[accountType]={}", value)); + query.push_str(&format!("filter[accountType]={}", urlencoding::encode(value))); } if let Some(value) = &self.filter_ownership_type { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[ownershipType]={}", value)); + query.push_str(&format!("filter[ownershipType]={}", urlencoding::encode(value))); } if !query.is_empty() { diff --git a/src/v1/categories.rs b/src/v1/categories.rs index 014dd81..a5d31b5 100755 --- a/src/v1/categories.rs +++ b/src/v1/categories.rs @@ -108,7 +108,7 @@ impl ListCategoriesOptions { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[parent]={}", value)); + query.push_str(&format!("filter[parent]={}", urlencoding::encode(value))); } if !query.is_empty() { diff --git a/src/v1/transactions.rs b/src/v1/transactions.rs index e39c808..a675111 100755 --- a/src/v1/transactions.rs +++ b/src/v1/transactions.rs @@ -251,35 +251,35 @@ impl ListTransactionsOptions { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[status]={}", value)); + query.push_str(&format!("filter[status]={}", urlencoding::encode(value))); } if let Some(value) = &self.filter_since { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[since]={}", value)); + query.push_str(&format!("filter[since]={}", urlencoding::encode(value))); } if let Some(value) = &self.filter_until { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[until]={}", value)); + query.push_str(&format!("filter[until]={}", urlencoding::encode(value))); } if let Some(value) = &self.filter_category { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[category]={}", value)); + query.push_str(&format!("filter[category]={}", urlencoding::encode(value))); } if let Some(value) = &self.filter_tag { if !query.is_empty() { query.push('&'); } - query.push_str(&format!("filter[tag]={}", value)); + query.push_str(&format!("filter[tag]={}", urlencoding::encode(value))); } if !query.is_empty() {