diff --git a/src/lib/vicky/errors.rs b/src/lib/vicky/errors.rs index f5f46c7..3d0aa37 100644 --- a/src/lib/vicky/errors.rs +++ b/src/lib/vicky/errors.rs @@ -1,4 +1,4 @@ -use aws_sdk_s3::{operation::{upload_part::UploadPartError, complete_multipart_upload::CompleteMultipartUploadError, put_object::PutObjectError, get_object::GetObjectError}, primitives::ByteStreamError}; +use aws_sdk_s3::{operation::{put_object::PutObjectError, get_object::GetObjectError}, primitives::ByteStreamError}; use log::error; use rocket::{response::Responder, Request, http::Status}; use thiserror::Error; @@ -56,33 +56,23 @@ pub enum S3ClientError { #[error("Object Already Exists")] ObjectAlreadyExistsError, - #[error("SDK Error {source:?}")] + #[error(transparent)] SdkError { #[from] source: aws_sdk_s3::Error, }, - #[error("SDK Error {source:?}")] - SdkError2 { - #[from] source: aws_sdk_s3::error::SdkError, - }, - - #[error("SDK Error {source:?}")] - SdkError3 { - #[from] source: aws_sdk_s3::error::SdkError, - }, - - #[error("SDK Error {source:?}")] - SdkError5 { + #[error(transparent)] + SdkPutObjectError { #[from] source: aws_sdk_s3::error::SdkError, }, - #[error("SDK Error {source:?}")] - SdkError6 { + #[error(transparent)] + SdkGetObjectError { #[from] source: aws_sdk_s3::error::SdkError, }, - #[error("SDK Error {source:?}")] - SdkError4 { + #[error(transparent)] + ByteStreamError { #[from] source: ByteStreamError, } @@ -94,10 +84,13 @@ impl<'r, 'o: 'r> Responder<'r, 'o> for VickyError { fn respond_to(self, req: &'r Request<'_>) -> rocket::response::Result<'o> { // log `self` to your favored error tracker, e.g. // sentry::capture_error(&self); + error!("Error: {}", self); - { - error!("Error: {}", self); - Status::InternalServerError.respond_to(req) + match self { + Self::HttpError(x) => x.respond_to(req), + _ => { + Status::InternalServerError.respond_to(req) + } } } } \ No newline at end of file