From 67e12239b3b5de7c62b70b424d7015ea377d142c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Berthaud-M=C3=BCller?= Date: Fri, 2 Apr 2021 17:35:25 -0400 Subject: [PATCH] better error handling --- src/models/errors.rs | 13 +++++++++++-- src/models/users.rs | 7 +++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/models/errors.rs b/src/models/errors.rs index c7973a3..7ae5b4f 100644 --- a/src/models/errors.rs +++ b/src/models/errors.rs @@ -71,12 +71,21 @@ impl From for ErrorResponse { impl Into> for ErrorResponse { fn into(self) -> Outcome { - Outcome::Failure((self.status.clone(), self)) + Outcome::Failure(self.into()) } } +impl Into<(Status, ErrorResponse)> for ErrorResponse { + fn into(self) -> (Status, ErrorResponse) { + (self.status.clone(), self) + } +} pub fn make_500(e: E) -> ErrorResponse { - println!("{:?}", e); + println!("Making 500 for Error: {:?}", e); ErrorResponse::new(Status::InternalServerError, "An unexpected error occured.".into()) } + +pub fn make_500_tuple(e: E) -> (Status, ErrorResponse) { + make_500(e).into() +} diff --git a/src/models/users.rs b/src/models/users.rs index 59b3645..67e5df5 100644 --- a/src/models/users.rs +++ b/src/models/users.rs @@ -20,7 +20,7 @@ use jsonwebtoken::{ use crate::schema::*; use crate::DbConn; use crate::config::Config; -use crate::models::errors::ErrorResponse; +use crate::models::errors::{ErrorResponse, make_500_tuple}; const BEARER: &'static str = "Bearer "; @@ -109,9 +109,8 @@ impl<'r> FromRequest<'r> for UserInfo { return ErrorResponse::from(UserError::MalformedHeader).into() }; - // TODO: Better error handling - let config = request.guard::>().await.unwrap(); - let conn = request.guard::().await.unwrap(); + let config = try_outcome!(request.guard::>().await.map_failure(make_500_tuple)); + let conn = try_outcome!(request.guard::().await.map_failure(make_500_tuple)); let token_data = AuthClaims::decode( token, &config.web_app.secret