use super::object::ObjectType;use super::platform_error::PlatformErrorInfoResponse;use crate::response_context::ResponseContext;use crate::schema; #[derive(cynic::QueryFragment, Debug)]pub struct UserFacingError { pub error: UserFacingErrorInterface, pub response_context: ResponseContext,} #[derive(cynic::QueryFragment, Debug)]pub struct PlatformError { pub message: String, pub detail: Option<String>, pub info: PlatformErrorInfoResponse,} #[derive(cynic::InlineFragments, Debug)]pub enum UserFacingErrorInterface { PlatformError(PlatformError), SharedObjectsLimitExceeded(SharedObjectsLimitExceeded), PersonalObjectsLimitExceeded(PersonalObjectsLimitExceeded), AccountDelinquencyError(AccountDelinquencyError), GenericStringObjectUniqueKeyConflict(GenericStringObjectUniqueKeyConflict), BudgetExceededError(BudgetExceededError), PaymentMethodDeclinedError(PaymentMethodDeclinedError), InvalidAttachmentError(InvalidAttachmentError), #[cynic(fallback)] Unknown(UserFacingErrorFallback),} #[derive(cynic::QueryFragment, Debug)]#[cynic(graphql_type = "UserFacingErrorInterface")]pub struct UserFacingErrorFallback { pub message: String,} #[derive(cynic::QueryFragment, Debug)]pub struct SharedObjectsLimitExceeded { pub limit: i32, pub object_type: ObjectType, pub message: String,} #[derive(cynic::QueryFragment, Debug)]pub struct PersonalObjectsLimitExceeded { pub limit: i32, pub object_type: ObjectType, pub message: String,} #[derive(cynic::QueryFragment, Debug)]pub struct AccountDelinquencyError { pub message: String,} #[derive(cynic::QueryFragment, Debug)]pub struct GenericStringObjectUniqueKeyConflict { pub message: String,} #[derive(cynic::QueryFragment, Debug, thiserror::Error)]#[error("{message}")]pub struct BudgetExceededError { pub message: String,} #[derive(cynic::QueryFragment, Debug, thiserror::Error)]#[error("{message}")]pub struct PaymentMethodDeclinedError { pub message: String,} #[derive(cynic::QueryFragment, Debug, thiserror::Error)]#[error("{message}")]pub struct InvalidAttachmentError { pub message: String,}
use super::object::ObjectType;
use super::platform_error::PlatformErrorInfoResponse;
use crate::response_context::ResponseContext;
use crate::schema;
#[derive(cynic::QueryFragment, Debug)]
pub struct UserFacingError {
pub error: UserFacingErrorInterface,
pub response_context: ResponseContext,
}
#[derive(cynic::QueryFragment, Debug)]
pub struct PlatformError {
pub message: String,
pub detail: Option<String>,
pub info: PlatformErrorInfoResponse,
}
#[derive(cynic::InlineFragments, Debug)]
pub enum UserFacingErrorInterface {
PlatformError(PlatformError),
SharedObjectsLimitExceeded(SharedObjectsLimitExceeded),
PersonalObjectsLimitExceeded(PersonalObjectsLimitExceeded),
AccountDelinquencyError(AccountDelinquencyError),
GenericStringObjectUniqueKeyConflict(GenericStringObjectUniqueKeyConflict),
BudgetExceededError(BudgetExceededError),
PaymentMethodDeclinedError(PaymentMethodDeclinedError),
InvalidAttachmentError(InvalidAttachmentError),
#[cynic(fallback)]
Unknown(UserFacingErrorFallback),
}
#[derive(cynic::QueryFragment, Debug)]
#[cynic(graphql_type = "UserFacingErrorInterface")]
pub struct UserFacingErrorFallback {
pub message: String,
}
#[derive(cynic::QueryFragment, Debug)]
pub struct SharedObjectsLimitExceeded {
pub limit: i32,
pub object_type: ObjectType,
pub message: String,
}
#[derive(cynic::QueryFragment, Debug)]
pub struct PersonalObjectsLimitExceeded {
pub limit: i32,
pub object_type: ObjectType,
pub message: String,
}
#[derive(cynic::QueryFragment, Debug)]
pub struct AccountDelinquencyError {
pub message: String,
}
#[derive(cynic::QueryFragment, Debug)]
pub struct GenericStringObjectUniqueKeyConflict {
pub message: String,
}
#[derive(cynic::QueryFragment, Debug, thiserror::Error)]
#[error("{message}")]
pub struct BudgetExceededError {
pub message: String,
}
#[derive(cynic::QueryFragment, Debug, thiserror::Error)]
#[error("{message}")]
pub struct PaymentMethodDeclinedError {
pub message: String,
}
#[derive(cynic::QueryFragment, Debug, thiserror::Error)]
#[error("{message}")]
pub struct InvalidAttachmentError {
pub message: String,
}