summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-09-13 13:10:04 +0000
committerSanto Cariotti <santo@dcariotti.me>2022-09-13 13:10:04 +0000
commit412494edf618b8eda71656855656f9b8b21c3eae (patch)
tree72ddf711989eadd23b47471123c982d75a761e87 /src
parent987e5d92ea9043b588cb7887861bb05a3a0695c4 (diff)
Delete an uploaded file
Diffstat (limited to 'src')
-rw-r--r--src/errors.rs7
-rw-r--r--src/files.rs7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/errors.rs b/src/errors.rs
index e6f8e2c..15ca9d4 100644
--- a/src/errors.rs
+++ b/src/errors.rs
@@ -68,3 +68,10 @@ impl From<std::string::String> for AppError {
AppError::BadRequest(error)
}
}
+
+/// Raise a generic io error
+impl From<std::io::Error> for AppError {
+ fn from(error: std::io::Error) -> Self {
+ AppError::BadRequest(error.to_string())
+ }
+}
diff --git a/src/files.rs b/src/files.rs
index 0bc531d..16a11b6 100644
--- a/src/files.rs
+++ b/src/files.rs
@@ -55,6 +55,13 @@ pub async fn upload(
))
}
+/// Delete a file from the filesystem
+pub async fn delete_upload(filename: String) -> Result<(), AppError> {
+ fs::remove_file(filename)?;
+
+ Ok(())
+}
+
/// Axum endpoint which shows uploaded file
pub async fn show_uploads(Path(id): Path<String>) -> (HeaderMap, Vec<u8>) {
let index = id.find('.').unwrap_or(usize::max_value());