From 411c8668ebc35d989c609b98340209a61d3e602e Mon Sep 17 00:00:00 2001 From: Manuel Gugger Date: Fri, 27 May 2022 13:13:44 +0200 Subject: [PATCH] add prelude --- actix_admin/actix_admin_macros/src/lib.rs | 6 +---- actix_admin/src/builder.rs | 13 ++++------ actix_admin/src/lib.rs | 29 ++++++++++++----------- actix_admin/src/routes/create_get.rs | 6 ++--- actix_admin/src/routes/create_post.rs | 6 ++--- actix_admin/src/routes/index.rs | 5 ++-- actix_admin/src/routes/list.rs | 5 ++-- src/entity/comment.rs | 3 +-- src/entity/post.rs | 2 +- src/main.rs | 5 +--- 10 files changed, 35 insertions(+), 45 deletions(-) diff --git a/actix_admin/actix_admin_macros/src/lib.rs b/actix_admin/actix_admin_macros/src/lib.rs index 02a347d..2d3a46f 100644 --- a/actix_admin/actix_admin_macros/src/lib.rs +++ b/actix_admin/actix_admin_macros/src/lib.rs @@ -44,7 +44,7 @@ pub fn derive_crud_fns(input: proc_macro::TokenStream) -> proc_macro::TokenStrea use std::convert::From; use async_trait::async_trait; use actix_web::{web, HttpResponse, HttpRequest, Error}; - use actix_admin::{ ActixAdminField, ActixAdminModelTrait, ActixAdminViewModelTrait, ActixAdminViewModel, ActixAdminModel, AppDataTrait , hashmap}; + use actix_admin::prelude::*; use sea_orm::ActiveValue::Set; use sea_orm::{ConnectOptions, DatabaseConnection}; use sea_orm::{entity::*, query::*}; @@ -64,12 +64,8 @@ pub fn derive_crud_fns(input: proc_macro::TokenStream) -> proc_macro::TokenStrea impl From for ActixAdminModel { fn from(model: Model) -> Self { ActixAdminModel { - // TODO: create dynamically values: hashmap![ #(#fields_for_from_model),* - // "title" => model.title, - // "text" => model.text, - // "id" => model.id.to_string() ] } } diff --git a/actix_admin/src/builder.rs b/actix_admin/src/builder.rs index 728d347..a429773 100644 --- a/actix_admin/src/builder.rs +++ b/actix_admin/src/builder.rs @@ -4,10 +4,7 @@ use actix_web::{web}; use std::collections::HashMap; -use crate::ActixAdmin; -use crate::ActixAdminViewModelTrait; -use crate::ActixAdminViewModel; -use crate::AppDataTrait; +use crate::prelude::*; use crate::routes::list; use crate::routes::create_get; @@ -21,8 +18,8 @@ pub struct ActixAdminBuilder { pub trait ActixAdminBuilderTrait { fn new() -> Self; - fn add_entity(&mut self, view_model: &ActixAdminViewModel); - fn get_scope(self) -> actix_web::Scope; + fn add_entity(&mut self, view_model: &ActixAdminViewModel); + fn get_scope(self) -> actix_web::Scope; fn get_actix_admin(&self) -> ActixAdmin; } @@ -37,7 +34,7 @@ impl ActixAdminBuilderTrait for ActixAdminBuilder { } } - fn add_entity( + fn add_entity( &mut self, view_model: &ActixAdminViewModel, ) { @@ -54,7 +51,7 @@ impl ActixAdminBuilderTrait for ActixAdminBuilder { self.actix_admin.view_models.insert(key, view_model.clone()); } - fn get_scope(self) -> actix_web::Scope { + fn get_scope(self) -> actix_web::Scope { let mut scope = web::scope("/admin").route("/", web::get().to(index::)); for entity_scope in self.scopes { scope = scope.service(entity_scope); diff --git a/actix_admin/src/lib.rs b/actix_admin/src/lib.rs index 84466f2..7d7f0a8 100644 --- a/actix_admin/src/lib.rs +++ b/actix_admin/src/lib.rs @@ -4,21 +4,22 @@ use serde::{Serialize}; use std::collections::HashMap; use tera::{Tera}; -pub use actix_admin_macros::DeriveActixAdminModel; +pub mod view_model; +pub mod model; +pub mod routes; +pub mod builder; -mod view_model; -pub use view_model::ActixAdminViewModel; -pub use view_model::ActixAdminViewModelTrait; +pub mod prelude { + pub use crate::builder::{ ActixAdminBuilder, ActixAdminBuilderTrait}; + pub use crate::model::{ ActixAdminModel, ActixAdminModelTrait}; + pub use crate::view_model::{ ActixAdminViewModel, ActixAdminViewModelTrait}; + pub use actix_admin_macros::{ DeriveActixAdminModel }; + pub use crate::{ ActixAdminAppDataTrait, ActixAdmin}; + pub use crate::{ hashmap }; + pub use crate::{ ActixAdminField }; +} -mod model; -pub use model::ActixAdminModel; -pub use model::ActixAdminModelTrait; - -mod builder; -pub use builder::ActixAdminBuilder; -pub use builder::ActixAdminBuilderTrait; - -mod routes; +use crate::prelude::*; #[macro_export] macro_rules! hashmap { @@ -42,7 +43,7 @@ pub enum ActixAdminField { } // AppDataTrait -pub trait AppDataTrait { +pub trait ActixAdminAppDataTrait { fn get_db(&self) -> &DatabaseConnection; fn get_actix_admin(&self) -> &ActixAdmin; } diff --git a/actix_admin/src/routes/create_get.rs b/actix_admin/src/routes/create_get.rs index 7686c16..0c4c2ec 100644 --- a/actix_admin/src/routes/create_get.rs +++ b/actix_admin/src/routes/create_get.rs @@ -1,11 +1,11 @@ use actix_web::{error, web, Error, HttpRequest, HttpResponse}; use tera::{Context}; -use crate::AppDataTrait; -use crate::ActixAdminViewModelTrait; +use crate::prelude::*; + use crate::TERA; -pub async fn create_get( +pub async fn create_get( _req: HttpRequest, data: web::Data, _body: web::Payload, diff --git a/actix_admin/src/routes/create_post.rs b/actix_admin/src/routes/create_post.rs index 5e10b9e..f4bb237 100644 --- a/actix_admin/src/routes/create_post.rs +++ b/actix_admin/src/routes/create_post.rs @@ -1,11 +1,9 @@ use actix_web::http::header; use actix_web::{web, Error, HttpRequest, HttpResponse}; -use crate::AppDataTrait; -use crate::ActixAdminViewModelTrait; -use crate::ActixAdminModel; +use crate::prelude::*; -pub async fn create_post( +pub async fn create_post( _req: HttpRequest, data: web::Data, text: String, diff --git a/actix_admin/src/routes/index.rs b/actix_admin/src/routes/index.rs index 3b1753b..193dc55 100644 --- a/actix_admin/src/routes/index.rs +++ b/actix_admin/src/routes/index.rs @@ -1,10 +1,11 @@ use actix_web::{error, web, Error, HttpResponse}; use tera::{Context}; -use crate::AppDataTrait; +use crate::prelude::*; + use crate::TERA; -pub async fn index(data: web::Data) -> Result { +pub async fn index(data: web::Data) -> Result { let entity_names = &data.get_actix_admin().entity_names; let mut ctx = Context::new(); ctx.insert("entity_names", &entity_names); diff --git a/actix_admin/src/routes/list.rs b/actix_admin/src/routes/list.rs index a3112d5..1ad1ed4 100644 --- a/actix_admin/src/routes/list.rs +++ b/actix_admin/src/routes/list.rs @@ -2,7 +2,8 @@ use actix_web::{error, web, Error, HttpRequest, HttpResponse}; use serde::{Deserialize}; use tera::{Context}; -use crate::AppDataTrait; +use crate::prelude::*; + use crate::ActixAdminViewModelTrait; use crate::ActixAdminViewModel; use crate::ActixAdminModel; @@ -16,7 +17,7 @@ pub struct Params { entities_per_page: Option, } -pub async fn list( +pub async fn list( req: HttpRequest, data: web::Data, ) -> Result { diff --git a/src/entity/comment.rs b/src/entity/comment.rs index 9ab70bf..95a9403 100644 --- a/src/entity/comment.rs +++ b/src/entity/comment.rs @@ -1,7 +1,6 @@ use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; - -use actix_admin::{ DeriveActixAdminModel }; +use actix_admin::prelude::*; #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Deserialize, Serialize, DeriveActixAdminModel)] #[sea_orm(table_name = "comment")] diff --git a/src/entity/post.rs b/src/entity/post.rs index ce76f53..f1b32f9 100644 --- a/src/entity/post.rs +++ b/src/entity/post.rs @@ -1,6 +1,6 @@ use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; -use actix_admin::{ DeriveActixAdminModel }; +use actix_admin::prelude::*; #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Deserialize, Serialize, DeriveActixAdminModel)] #[sea_orm(table_name = "post")] diff --git a/src/main.rs b/src/main.rs index 47a9a51..121f369 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,6 @@ extern crate serde_derive; -use actix_admin::{ - ActixAdmin, ActixAdminBuilder, ActixAdminBuilderTrait, ActixAdminViewModel, - AppDataTrait as ActixAdminAppDataTrait, -}; +use actix_admin::prelude::*; use actix_session::{CookieSession, Session}; use actix_web::{web, App, HttpResponse, HttpServer, middleware}; use azure_auth::{AppDataTrait as AzureAuthAppDataTrait, AzureAuth, UserInfo};