79 lines · 2.1 KB · Rust
RawDownload
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,}