From 40954d6d4ac2c8f70a59401e875a1204500494a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=ADcolas=20Varela=20Auler?= Date: Sun, 8 Dec 2024 19:39:48 -0300 Subject: [PATCH] refa: adding some logs and allowing webhook error for now (#169) --- src/hypermedia/service/pluggy.rs | 52 ++++++++++++++++++++------------ src/main.rs | 1 + 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/hypermedia/service/pluggy.rs b/src/hypermedia/service/pluggy.rs index c20a7e8..fcc3106 100644 --- a/src/hypermedia/service/pluggy.rs +++ b/src/hypermedia/service/pluggy.rs @@ -21,27 +21,41 @@ pub async fn widget( }; // TODO: what to do with webhook stuff - let Ok(webhook_url) = create_user_endpoint(&env.svix_api_key, user.id).await else { - return ( - StatusCode::INTERNAL_SERVER_ERROR, - PluggyWidgetModalErrorTemplate {}, - ) - .into_response(); + let webhook_url = match create_user_endpoint(&env.svix_api_key, user.id).await { + Ok(url) => url, + Err(e) => { + tracing::error!(?e, "couldn't create user endpoint"); + // return ( + // StatusCode::INTERNAL_SERVER_ERROR, + // PluggyWidgetModalErrorTemplate {}, + // ) + // .into_response(); + "https://fina.requestcatcher.com/test".to_owned() + } }; - let Ok(CreateConnectTokenOutcome::Success(connect_token)) = create_connect_token( - pluggy_api_key, - // "https://fina.requestcatcher.com/test".to_owned(), - webhook_url, - user.id, - ) - .await - else { - return ( - StatusCode::FAILED_DEPENDENCY, - PluggyWidgetModalErrorTemplate {}, - ) - .into_response(); + let connect_token = match create_connect_token(pluggy_api_key, webhook_url, user.id).await { + Ok(CreateConnectTokenOutcome::Success(connect_token)) => connect_token, + Ok( + CreateConnectTokenOutcome::Forbidden + | CreateConnectTokenOutcome::NotFound + | CreateConnectTokenOutcome::Internal, + ) => { + tracing::error!("pluggy returned error outcome on create connect token"); + return ( + StatusCode::FAILED_DEPENDENCY, + PluggyWidgetModalErrorTemplate {}, + ) + .into_response(); + } + Err(e) => { + tracing::error!(?e, "pluggy failed to give a response"); + return ( + StatusCode::INTERNAL_SERVER_ERROR, + PluggyWidgetModalErrorTemplate {}, + ) + .into_response(); + } }; return PluggyConnectWidgetTemplate { diff --git a/src/main.rs b/src/main.rs index 439196c..f2d2246 100644 --- a/src/main.rs +++ b/src/main.rs @@ -293,6 +293,7 @@ fn renew_pluggy_task( let mut pluggy_api_key = pluggy_api_key.lock().await; *pluggy_api_key = new_pluggy_api_key.api_key; + tracing::info!("renewed pluggy api key"); } }) }