From 5cafc7e757bdfcda1b83464b7d606a7abea07635 Mon Sep 17 00:00:00 2001 From: Lucas Vas Date: Mon, 2 Mar 2026 08:47:53 -0500 Subject: [PATCH] chore: pc change Started implementing delete functions. --- src/components/file_drop.rs | 11 ++++++++++- src/pages/api/files.rs | 26 ++++++++++++++++++++++++++ src/pages/api/mod.rs | 3 +++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/components/file_drop.rs b/src/components/file_drop.rs index c084b40..ae07e4f 100644 --- a/src/components/file_drop.rs +++ b/src/components/file_drop.rs @@ -102,6 +102,10 @@ pub fn FileDrop( upload_files.run(files); }; + // let on_click_file_delete = move |file_name, form_id| { + // + // }; + view! { -
"File name: "{file}
+
+
{file}
+
+ +
+
} } diff --git a/src/pages/api/files.rs b/src/pages/api/files.rs index 738310d..b36249f 100644 --- a/src/pages/api/files.rs +++ b/src/pages/api/files.rs @@ -57,3 +57,29 @@ pub async fn upload_file( .map(|_| ()) .map_err(ServerFnError::from) } + +#[server] +pub async fn delete_file( + access_token: String, + form_id: String, + file_name: String +) -> Result<(), ServerFnError> { + use crate::utils::server::create_aws_config; + use crate::pages::api::tokens::validate_and_get_token_info; + + let user_claims = validate_and_get_token_info(access_token).await?; + let subject = user_claims.subject; + + let key = format!("{form_id}/{subject}/{file_name}"); + + let client = aws_sdk_s3::Client::new(&create_aws_config().await); + + client + .delete_object() + .bucket("leptos-scholarhips") + .key(key) + .send() + .await + .map(|_| ()) + .map_err(ServerFnError::from) +} diff --git a/src/pages/api/mod.rs b/src/pages/api/mod.rs index 3eb7f87..e30afcb 100644 --- a/src/pages/api/mod.rs +++ b/src/pages/api/mod.rs @@ -28,3 +28,6 @@ pub static PROVIDER_CONTACT_TABLE: &str = "leptos-provider-contacts"; #[cfg(feature = "ssr")] pub static MAIN_TABLE_NAME: &str = "scholarships-main"; + +#[cfg(feature = "ssr")] +pub static S3_BUCKET_NAME: &str = "leptos-scholarships";