new error responder
This commit is contained in:
parent
960233b7bc
commit
fe7eb7e392
32
server/src/err.rs
Normal file
32
server/src/err.rs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
use std::{error, fmt};
|
||||||
|
use rocket::response::{self, Responder, Response};
|
||||||
|
use rocket::http::Status;
|
||||||
|
use rocket::request::Request;
|
||||||
|
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub struct DbResponse {
|
||||||
|
err_msg: &'static str
|
||||||
|
}
|
||||||
|
|
||||||
|
pub type DbError<T, DbErr> = std::result::Result<T, DbErr>;
|
||||||
|
|
||||||
|
|
||||||
|
impl fmt::Display for DbResponse {
|
||||||
|
fn fmt(&self, f:&mut fmt::Formatter) -> fmt::Result {
|
||||||
|
write!(f, "Database error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl error::Error for DbResponse {
|
||||||
|
fn source(&self) -> Option<&(dyn error::Error + 'static)> {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl<'r> Responder<'r> for DbResponse {
|
||||||
|
fn respond_to(self, _:&Request) -> response::Result<'r> {
|
||||||
|
Response::build()
|
||||||
|
.status(Status::InternalServerError)
|
||||||
|
.raw_header("db-error", self.err_msg)
|
||||||
|
.ok()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user