diff options
author | trinity-1686a <trinity.pointard@gmail.com> | 2021-12-06 15:17:47 +0100 |
---|---|---|
committer | Alex <alex@adnab.me> | 2021-12-06 15:17:47 +0100 |
commit | c4ac8835d388b14e144b01599c0f1351bdb9e958 (patch) | |
tree | e2bdb8e9ef34ea01c13ee126728f7adac2642e6a /src/api/error.rs | |
parent | ccce75bc25a2827e23443ec65ceb6b409f4a55ae (diff) | |
download | garage-c4ac8835d388b14e144b01599c0f1351bdb9e958.tar.gz garage-c4ac8835d388b14e144b01599c0f1351bdb9e958.zip |
add proper request router for s3 api (#163)
fix #161
Current request router was organically grown, and is getting messier and messier with each addition.
This router cover exaustively existing API endpoints (with exceptions listed in [#161(comment)](https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/161#issuecomment-1773) either because new and old api endpoint can't feasabily be differentied, or it's more lambda than s3).
Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/163
Reviewed-by: Alex <alex@adnab.me>
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
Diffstat (limited to 'src/api/error.rs')
-rw-r--r-- | src/api/error.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/api/error.rs b/src/api/error.rs index 4ad8ef82..9bb8f8e2 100644 --- a/src/api/error.rs +++ b/src/api/error.rs @@ -65,6 +65,10 @@ pub enum Error { /// The client sent an invalid request #[error(display = "Bad request: {}", _0)] BadRequest(String), + + /// The client sent a request for an action not supported by garage + #[error(display = "Unimplemented action: {}", _0)] + NotImplemented(String), } impl From<roxmltree::Error> for Error { @@ -94,6 +98,7 @@ impl Error { StatusCode::INTERNAL_SERVER_ERROR } Error::InvalidRange(_) => StatusCode::RANGE_NOT_SATISFIABLE, + Error::NotImplemented(_) => StatusCode::NOT_IMPLEMENTED, _ => StatusCode::BAD_REQUEST, } } |