aws_utils_dynamodb/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Error {
5    #[error(transparent)]
6    BuildError(#[from] aws_sdk_dynamodb::error::BuildError),
7
8    #[error(transparent)]
9    AwsSdk(#[from] Box<aws_sdk_dynamodb::Error>),
10
11    #[error("ValidationError: {0}")]
12    ValidationError(String),
13
14    #[error("NotFound")]
15    NotFound,
16
17    #[error("Invalid: {0}")]
18    Invalid(String),
19}
20
21pub(crate) fn from_aws_sdk_error(e: impl Into<aws_sdk_dynamodb::Error>) -> Error {
22    Error::AwsSdk(Box::new(e.into()))
23}
24
25impl Error {
26    pub fn is_conditional_check_failed_exception(&self) -> bool {
27        match self {
28            Error::AwsSdk(e) => {
29                match e.as_ref() {
30                    aws_sdk_dynamodb::Error::ConditionalCheckFailedException(_) => true,
31                    _ => false,
32                }
33            },
34            _ => false,
35        }
36    }
37}