Changeset View
Changeset View
Standalone View
Standalone View
services/identity/src/error.rs
use aws_sdk_dynamodb::{model::AttributeValue, Error as DynamoDBError}; | use aws_sdk_dynamodb::{model::AttributeValue, Error as DynamoDBError}; | ||||
use std::collections::hash_map::HashMap; | use std::collections::hash_map::HashMap; | ||||
use std::fmt::{Display, Formatter, Result as FmtResult}; | use std::fmt::{Display, Formatter, Result as FmtResult}; | ||||
use tracing::error; | |||||
#[derive( | #[derive( | ||||
Debug, derive_more::Display, derive_more::From, derive_more::Error, | Debug, derive_more::Display, derive_more::From, derive_more::Error, | ||||
)] | )] | ||||
pub enum Error { | pub enum Error { | ||||
#[display(...)] | #[display(...)] | ||||
AwsSdk(DynamoDBError), | AwsSdk(DynamoDBError), | ||||
#[display(...)] | #[display(...)] | ||||
Attribute(DBItemError), | Attribute(DBItemError), | ||||
#[display(...)] | #[display(...)] | ||||
Transport(tonic::transport::Error), | |||||
#[display(...)] | |||||
Status(tonic::Status), | |||||
#[display(...)] | |||||
MissingItem, | MissingItem, | ||||
} | } | ||||
#[derive(Debug, derive_more::Error, derive_more::Constructor)] | #[derive(Debug, derive_more::Error, derive_more::Constructor)] | ||||
pub struct DBItemError { | pub struct DBItemError { | ||||
pub attribute_name: String, | pub attribute_name: String, | ||||
pub attribute_value: Option<AttributeValue>, | pub attribute_value: Option<AttributeValue>, | ||||
pub attribute_error: DBItemAttributeError, | pub attribute_error: DBItemAttributeError, | ||||
▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | self | ||||
.ok_or(DBItemError { | .ok_or(DBItemError { | ||||
attribute_name: key.to_string(), | attribute_name: key.to_string(), | ||||
attribute_value: None, | attribute_value: None, | ||||
attribute_error: DBItemAttributeError::Missing, | attribute_error: DBItemAttributeError::Missing, | ||||
})? | })? | ||||
.to_vec(key) | .to_vec(key) | ||||
} | } | ||||
} | } | ||||
pub fn consume_error<T>(result: Result<T, Error>) { | |||||
match result { | |||||
Ok(_) => return, | |||||
Err(e) => { | |||||
error!("{}", e); | |||||
} | |||||
} | |||||
} |