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}
+
}
}
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";