Working on auth
This commit is contained in:
@@ -57,7 +57,14 @@ impl fmt::Display for ServiceError {
|
||||
impl From<DieselError> for ServiceError {
|
||||
fn from(error: DieselError) -> ServiceError {
|
||||
match error {
|
||||
DieselError::DatabaseError(_, err) => ServiceError::new(409, err.message().to_string()),
|
||||
DieselError::DatabaseError(kind, err) => {
|
||||
match kind {
|
||||
diesel::result::DatabaseErrorKind::UniqueViolation => {
|
||||
ServiceError::new(409, err.message().to_string())
|
||||
},
|
||||
_ => ServiceError::new(500, err.message().to_string())
|
||||
}
|
||||
},
|
||||
DieselError::NotFound => {
|
||||
ServiceError::new(404, "The record was not found".to_string())
|
||||
},
|
||||
@@ -87,6 +94,12 @@ impl From<serenity::Error> for ServiceError {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<argon2::password_hash::Error> for ServiceError {
|
||||
fn from(error: argon2::password_hash::Error) -> ServiceError {
|
||||
ServiceError::new(500, format!("Unknown argon2 error: {}", error))
|
||||
}
|
||||
}
|
||||
|
||||
impl ResponseError for ServiceError {
|
||||
fn error_response(&self) -> HttpResponse {
|
||||
let status_code = match StatusCode::from_u16(self.status) {
|
||||
@@ -101,4 +114,4 @@ impl ResponseError for ServiceError {
|
||||
|
||||
HttpResponse::build(status_code).json(serde_json::json!({ "status": status_code.as_u16(), "message": error_message }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user