Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
billy1624 committed Dec 2, 2024
1 parent e4f2d1d commit 713479d
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
9 changes: 8 additions & 1 deletion src/enumerations/active_enum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ impl std::default::Default for ActiveEnumConfig {
format!("{}Enum", name.to_upper_camel_case())
}),
variant_name: Box::new(|_enum_name: &str, variant: &str| -> String {
variant.trim_matches('\'').to_string()
format_variant(variant)
}),
}
}
Expand Down Expand Up @@ -61,3 +61,10 @@ impl ActiveEnumBuilder {
})
}
}

pub(crate) fn format_variant(variant: &str) -> String {
variant
.chars()
.filter(|&c| c.is_ascii_alphanumeric() || c == '_')
.collect()
}
6 changes: 4 additions & 2 deletions src/inputs/active_enum_filter_input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ use async_graphql::dynamic::ObjectAccessor;
use heck::ToUpperCamelCase;
use sea_orm::{ActiveEnum, ColumnTrait, ColumnType, Condition, DynIden, EntityTrait};

use crate::{ActiveEnumBuilder, BuilderContext, FilterInfo, FilterOperation, SeaResult};
use crate::{
format_variant, ActiveEnumBuilder, BuilderContext, FilterInfo, FilterOperation, SeaResult,
};

/// The configuration structure for ActiveEnumFilterInputConfig
pub struct ActiveEnumFilterInputConfig {
Expand Down Expand Up @@ -88,7 +90,7 @@ where

let extract_variant = move |input: &str| -> String {
let variant = variants.iter().find(|variant| {
let variant = variant.to_string();
let variant = format_variant(&variant.to_string());
variant.eq(input)
});
variant.unwrap().to_string()
Expand Down
6 changes: 4 additions & 2 deletions src/outputs/entity_object.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ impl std::default::Default for EntityObjectConfig {
}
}

use crate::{BuilderContext, GuardAction, TypesMapHelper};
use crate::{format_variant, BuilderContext, GuardAction, TypesMapHelper};

/// This builder produces the GraphQL object of a SeaORM entity
pub struct EntityObjectBuilder {
Expand Down Expand Up @@ -214,7 +214,9 @@ fn sea_query_value_to_graphql_value(
sea_orm::Value::BigUnsigned(value) => value.map(Value::from),
sea_orm::Value::Float(value) => value.map(Value::from),
sea_orm::Value::Double(value) => value.map(Value::from),
sea_orm::Value::String(value) if is_enum => value.map(|it| Value::from(it.as_str())),
sea_orm::Value::String(value) if is_enum => {
value.map(|it| Value::from(format_variant(it.as_str())))
}
sea_orm::Value::String(value) => value.map(|it| Value::from(it.as_str())),
sea_orm::Value::Char(value) => value.map(|it| Value::from(it.to_string())),

Expand Down

0 comments on commit 713479d

Please sign in to comment.