From a5558ae04ef24dc72808102d4ecb7faab67f29d1 Mon Sep 17 00:00:00 2001 From: slim Date: Wed, 15 Jan 2025 14:45:06 +0100 Subject: [PATCH] feat: use sea orm helpers --- generator/src/writer.rs | 72 +++-------------------------------------- 1 file changed, 5 insertions(+), 67 deletions(-) diff --git a/generator/src/writer.rs b/generator/src/writer.rs index a771e990..0035c108 100644 --- a/generator/src/writer.rs +++ b/generator/src/writer.rs @@ -3,11 +3,7 @@ use std::path::Path; use proc_macro2::TokenStream; use quote::quote; -use crate::{ - parser::{parse_entity, parse_enumerations, EntityDefinition}, - util::add_line_break, - WebFrameworkEnum, -}; +use crate::{util::add_line_break, WebFrameworkEnum}; pub fn generate_query_root>(entities_path: &P) -> TokenStream { let mut entities_paths: Vec<_> = std::fs::read_dir(entities_path) @@ -29,58 +25,6 @@ pub fn generate_query_root>(entities_path: &P) -> TokenStream { .collect(); entities_paths.sort(); - let entities: Vec = entities_paths - .into_iter() - .map(|path| { - let file_name = path.file_name().unwrap().to_str().unwrap(); - parse_entity(file_name.into()) - }) - .collect(); - - let entities: Vec = entities - .iter() - .map(|entity| { - let entity_path = &entity.name; - - quote! { - #entity_path - } - }) - .collect(); - - let enumerations = std::fs::read_dir(entities_path) - .unwrap() - .filter(|r| r.is_ok()) - .map(|r| r.unwrap().path()) - .find(|r| { - let name = r.file_stem(); - - if let Some(v) = name { - v.eq(std::ffi::OsStr::new("sea_orm_active_enums")) - } else { - false - } - }); - - let enumerations = match enumerations { - Some(_) => { - let file_content = - std::fs::read_to_string(entities_path.as_ref().join("sea_orm_active_enums.rs")) - .unwrap(); - - parse_enumerations(file_content) - } - None => vec![], - }; - - let enumerations = enumerations.iter().map(|definition| { - let name = &definition.name; - - quote! { - builder.register_enumeration::(); - } - }); - quote! { use crate::entities::*; use async_graphql::dynamic::*; @@ -96,16 +40,10 @@ pub fn generate_query_root>(entities_path: &P) -> TokenStream { depth: Option, complexity: Option, ) -> Result { - let mut builder = Builder::new(&CONTEXT, database.clone()); - - seaography::register_entities!( - builder, - [ - #(#entities,)* - ] - ); + let builder = Builder::new(&CONTEXT, database.clone()); + let builder = register_entity_modules(builder); + let builder = register_active_enums(builder); - #(#enumerations)* builder .set_depth_limit(depth) @@ -199,4 +137,4 @@ pub fn write_env>( std::fs::write(file_name, tokens)?; Ok(()) -} +} \ No newline at end of file