From 35adb141ab07d9dd8d4360fe0771274c1f510280 Mon Sep 17 00:00:00 2001 From: Rorik Star Platinum Date: Fri, 7 Nov 2025 17:20:54 +0300 Subject: [PATCH] (fix) serialization and typization fixed --- src/api.rs | 4 ++-- src/api/models.rs | 2 +- src/main.rs | 1 - src/route/handlers.rs | 10 ++++++++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/api.rs b/src/api.rs index 9ba9b17..959de36 100644 --- a/src/api.rs +++ b/src/api.rs @@ -6,5 +6,5 @@ pub mod consents; pub mod accounts; pub mod transactions; -pub use client::{BankClient, BankingError, BankingClients}; -pub use models::{ApiResponse, AccountData, TransactionData, ConsentResponse}; +pub use client::{BankingError, BankingClients}; +// pub use models::{ApiResponse, AccountData, TransactionData, ConsentResponse}; diff --git a/src/api/models.rs b/src/api/models.rs index 74acf0f..76b4f2c 100644 --- a/src/api/models.rs +++ b/src/api/models.rs @@ -49,7 +49,7 @@ pub struct ConsentResponse { pub consent_id: String, pub status: String, pub message: String, - pub created_at: DateTime, + pub created_at: String, pub auto_approved: bool, } diff --git a/src/main.rs b/src/main.rs index d0832a7..df767bf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,6 @@ mod state; mod api; mod auth; -use std::net::SocketAddr; use crate::state::AppState; diff --git a/src/route/handlers.rs b/src/route/handlers.rs index 90634b3..e799e9c 100644 --- a/src/route/handlers.rs +++ b/src/route/handlers.rs @@ -60,12 +60,18 @@ pub async fn create_consent_handler( .await .map_err(map_banking_error)?; + let expires_at = chrono::DateTime::parse_from_rfc3339(&consent_response.created_at) + .ok() + .map(|dt| dt.with_timezone(&chrono::Utc)) + .unwrap_or_else(|| chrono::Utc::now()) // fallback to now if parse fails + + chrono::Duration::days(365); + db::consents::store_consent( &state.db_pool, &user_id, bank.code(), &consent_response.consent_id, - consent_response.created_at + chrono::Duration::days(365), + expires_at, ) .await .map_err(|e| ( @@ -77,7 +83,7 @@ pub async fn create_consent_handler( StatusCode::CREATED, Json(json!({ "consent_id": consent_response.consent_id, - "expires_at": consent_response.created_at + chrono::Duration::days(365), + "expires_at": consent_response.created_at + &chrono::Duration::days(365).to_string(), "status": consent_response.status, "message": consent_response.message, }))