From ded28be2c01a744a80bcb92cae4e3922b29f7baa Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Tue, 26 Oct 2021 18:58:06 +0800 Subject: [PATCH] Refactoring --- src/entity/column.rs | 5 +---- src/query/insert.rs | 4 ++-- src/query/select.rs | 5 +++-- src/query/update.rs | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/entity/column.rs b/src/entity/column.rs index 8cd65d9c..9a1f5c9d 100644 --- a/src/entity/column.rs +++ b/src/entity/column.rs @@ -299,13 +299,10 @@ impl From for sea_query::ColumnType { ColumnType::Money(s) => sea_query::ColumnType::Money(s), ColumnType::Json => sea_query::ColumnType::Json, ColumnType::JsonBinary => sea_query::ColumnType::JsonBinary, - ColumnType::Custom(s) => { + ColumnType::Custom(s) | ColumnType::Enum(s, _) => { sea_query::ColumnType::Custom(sea_query::SeaRc::new(sea_query::Alias::new(&s))) } ColumnType::Uuid => sea_query::ColumnType::Uuid, - ColumnType::Enum(s, _) => { - sea_query::ColumnType::Custom(sea_query::SeaRc::new(sea_query::Alias::new(&s))) - } } } } diff --git a/src/query/insert.rs b/src/query/insert.rs index 63f22c35..8719e011 100644 --- a/src/query/insert.rs +++ b/src/query/insert.rs @@ -3,7 +3,7 @@ use crate::{ PrimaryKeyTrait, QueryTrait, }; use core::marker::PhantomData; -use sea_query::{Expr, InsertStatement, ValueTuple}; +use sea_query::{Alias, Expr, InsertStatement, ValueTuple}; #[derive(Debug)] pub struct Insert @@ -136,7 +136,7 @@ where columns.push(col); let val = Expr::val(av.into_value().unwrap()); let expr = if let Some(enum_name) = enum_name { - Expr::enum_value(enum_name, val) + val.as_enum(Alias::new(enum_name)) } else { val.into() }; diff --git a/src/query/select.rs b/src/query/select.rs index 5a270f6d..5c6d1f3b 100644 --- a/src/query/select.rs +++ b/src/query/select.rs @@ -2,7 +2,7 @@ use crate::{ColumnTrait, EntityTrait, Iterable, QueryFilter, QueryOrder, QuerySe use core::fmt::Debug; use core::marker::PhantomData; pub use sea_query::JoinType; -use sea_query::{DynIden, Expr, IntoColumnRef, SeaRc, SelectStatement, SimpleExpr}; +use sea_query::{Alias, DynIden, Expr, IntoColumnRef, SeaRc, SelectStatement, SimpleExpr}; #[derive(Clone, Debug)] pub struct Select @@ -115,13 +115,14 @@ where fn column_list(&self) -> Vec { let table = SeaRc::new(E::default()) as DynIden; + let text_type = SeaRc::new(Alias::new("text")) as DynIden; E::Column::iter() .map(|col| { let col_def = col.def(); let enum_name = col_def.get_column_type().get_enum_name(); let col_expr = Expr::tbl(table.clone(), col); if enum_name.is_some() { - Expr::enum_value("text", col_expr) + col_expr.as_enum(text_type.clone()) } else { col_expr.into() } diff --git a/src/query/update.rs b/src/query/update.rs index 18e4594b..6b6f48f8 100644 --- a/src/query/update.rs +++ b/src/query/update.rs @@ -3,7 +3,7 @@ use crate::{ QueryTrait, }; use core::marker::PhantomData; -use sea_query::{Expr, IntoIden, SimpleExpr, UpdateStatement}; +use sea_query::{Alias, Expr, IntoIden, SimpleExpr, UpdateStatement}; #[derive(Clone, Debug)] pub struct Update; @@ -110,7 +110,7 @@ where if av.is_set() { let val = Expr::val(av.into_value().unwrap()); let expr = if let Some(enum_name) = enum_name { - Expr::enum_value(enum_name, val) + val.as_enum(Alias::new(enum_name)) } else { val.into() };