diff options
| -rw-r--r-- | src/errors.rs | 7 | ||||
| -rw-r--r-- | src/files.rs | 7 |
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()); |
