mirror of
https://git.proxmox.com/git/proxmox
synced 2025-10-04 21:13:26 +00:00
router: re-export HttpError
from proxmox-http-error
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
parent
779c45eaad
commit
add38769f8
@ -26,6 +26,7 @@ rustyline = { version = "9", optional = true }
|
|||||||
libc = { workspace = true, optional = true }
|
libc = { workspace = true, optional = true }
|
||||||
|
|
||||||
proxmox-lang.workspace = true
|
proxmox-lang.workspace = true
|
||||||
|
proxmox-http-error.workspace = true
|
||||||
proxmox-schema.workspace = true
|
proxmox-schema.workspace = true
|
||||||
proxmox-async.workspace = true
|
proxmox-async.workspace = true
|
||||||
|
|
||||||
|
@ -1,44 +1,4 @@
|
|||||||
use std::fmt;
|
pub use proxmox_http_error::{http_bail, http_err, HttpError};
|
||||||
|
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub use http::StatusCode;
|
pub use http::StatusCode;
|
||||||
|
|
||||||
/// HTTP error including `StatusCode` and message.
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct HttpError {
|
|
||||||
pub code: StatusCode,
|
|
||||||
pub message: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl std::error::Error for HttpError {}
|
|
||||||
|
|
||||||
impl HttpError {
|
|
||||||
pub fn new(code: StatusCode, message: String) -> Self {
|
|
||||||
HttpError { code, message }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl fmt::Display for HttpError {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
||||||
write!(f, "{}", self.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Macro to create a HttpError inside a anyhow::Error
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! http_err {
|
|
||||||
($status:ident, $($fmt:tt)+) => {{
|
|
||||||
::anyhow::Error::from($crate::HttpError::new(
|
|
||||||
$crate::error::StatusCode::$status,
|
|
||||||
format!($($fmt)+)
|
|
||||||
))
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Bail with an error generated with the `http_err!` macro.
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! http_bail {
|
|
||||||
($status:ident, $($fmt:tt)+) => {{
|
|
||||||
return Err($crate::http_err!($status, $($fmt)+));
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
@ -17,7 +17,7 @@ mod serializable_return;
|
|||||||
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
#[cfg(feature = "server")]
|
#[cfg(feature = "server")]
|
||||||
pub use error::HttpError;
|
pub use error::*;
|
||||||
|
|
||||||
pub use permission::*;
|
pub use permission::*;
|
||||||
pub use router::*;
|
pub use router::*;
|
||||||
|
Loading…
Reference in New Issue
Block a user