Added generic error wrapper
This commit is contained in:
parent
edc50440e4
commit
421111f880
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -183,7 +183,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "actix-web-utils"
|
name = "actix-web-utils"
|
||||||
version = "0.2.9"
|
version = "0.2.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"log",
|
"log",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "actix-web-utils"
|
name = "actix-web-utils"
|
||||||
version = "0.2.9"
|
version = "0.2.10"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Franklin E. Blanco"]
|
authors = ["Franklin E. Blanco"]
|
||||||
description = "Just some useful addons for actix web."
|
description = "Just some useful addons for actix web."
|
||||||
|
6
src/extensions/generic_error.rs
Normal file
6
src/extensions/generic_error.rs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
use std::fmt::Display;
|
||||||
|
|
||||||
|
|
||||||
|
pub struct GenericError<E: Display> {
|
||||||
|
pub error: E
|
||||||
|
}
|
@ -1,2 +1,3 @@
|
|||||||
pub mod typed_response;
|
pub mod typed_response;
|
||||||
pub mod logger;
|
pub mod logger;
|
||||||
|
pub mod generic_error;
|
@ -1,7 +1,7 @@
|
|||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
|
||||||
use crate::{dtos::message::MessageResource, enums::error::Error, extensions::typed_response::TypedHttpResponse};
|
use crate::{dtos::message::MessageResource, enums::error::Error, extensions::{typed_response::TypedHttpResponse, generic_error::GenericError}};
|
||||||
|
|
||||||
/// This trait aims to aid macros defined in this crate so that the macro can take any shape of error and
|
/// This trait aims to aid macros defined in this crate so that the macro can take any shape of error and
|
||||||
/// do the same thing for all.
|
/// do the same thing for all.
|
||||||
@ -32,8 +32,8 @@ impl ReturnableErrorShape for Vec<MessageResource> {
|
|||||||
TypedHttpResponse::return_standard_error_list(status_code, self.to_vec())
|
TypedHttpResponse::return_standard_error_list(status_code, self.to_vec())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl<'a> ReturnableErrorShape for dyn Display + 'a {
|
impl<E: Display> ReturnableErrorShape for GenericError<E>{
|
||||||
fn convert_to_returnable<T: Serialize>(&self, status_code: u16) -> TypedHttpResponse<T> {
|
fn convert_to_returnable<T: Serialize>(&self, status_code: u16) -> TypedHttpResponse<T> {
|
||||||
TypedHttpResponse::return_standard_error(status_code, MessageResource::new_from_err(self))
|
TypedHttpResponse::return_standard_error(status_code, MessageResource::new_from_str(&self.error.to_string()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user