aboutsummaryrefslogtreecommitdiff
path: root/src/api/common/signature/error.rs
diff options
context:
space:
mode:
authorAlex <lx@deuxfleurs.fr>2025-02-01 17:48:25 +0000
committerAlex <lx@deuxfleurs.fr>2025-02-01 17:48:25 +0000
commitd601f311865b8159a7bf1801dd8f43021d0b443b (patch)
tree07e4268d09a6bead4c4e5a2a4f122471a7a5d23b /src/api/common/signature/error.rs
parent9330fd79d3466051394f6d419a247d46da8f5151 (diff)
parente4de7bdfd5e6acc05309f59d7f77755f0807e8e4 (diff)
downloadgarage-d601f311865b8159a7bf1801dd8f43021d0b443b.tar.gz
garage-d601f311865b8159a7bf1801dd8f43021d0b443b.zip
Merge pull request 'split garage_api in garage_api_{common,s3,k2v,admin}' (#947) from split-garage-api into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/947
Diffstat (limited to 'src/api/common/signature/error.rs')
-rw-r--r--src/api/common/signature/error.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/api/common/signature/error.rs b/src/api/common/signature/error.rs
new file mode 100644
index 00000000..2d92a072
--- /dev/null
+++ b/src/api/common/signature/error.rs
@@ -0,0 +1,32 @@
+use err_derive::Error;
+
+use crate::common_error::CommonError;
+pub use crate::common_error::{CommonErrorDerivative, OkOrBadRequest, OkOrInternalError};
+
+/// Errors of this crate
+#[derive(Debug, Error)]
+pub enum Error {
+ #[error(display = "{}", _0)]
+ /// Error from common error
+ Common(CommonError),
+
+ /// Authorization Header Malformed
+ #[error(display = "Authorization header malformed, unexpected scope: {}", _0)]
+ AuthorizationHeaderMalformed(String),
+
+ // Category: bad request
+ /// The request contained an invalid UTF-8 sequence in its path or in other parameters
+ #[error(display = "Invalid UTF-8: {}", _0)]
+ InvalidUtf8Str(#[error(source)] std::str::Utf8Error),
+}
+
+impl<T> From<T> for Error
+where
+ CommonError: From<T>,
+{
+ fn from(err: T) -> Self {
+ Error::Common(CommonError::from(err))
+ }
+}
+
+impl CommonErrorDerivative for Error {}