Fix serialize issues

This commit is contained in:
eraden 2023-07-27 22:29:04 +02:00
parent 21ceab8861
commit 354856e222
8 changed files with 37 additions and 11 deletions

View File

@ -23,6 +23,7 @@ impl EntityName for Entity {
DeriveActixAdmin,
DeriveActixAdminModel,
DeriveActixAdminViewModel,
serde::Serialize,
)]
pub struct Model {
#[actix_admin(primary_key)]
@ -64,6 +65,7 @@ impl PrimaryKeyTrait for PrimaryKey {
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {
Images,
ParkingSpaces,
}
@ -87,11 +89,18 @@ impl ColumnTrait for Column {
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
match self {
Self::Images => Entity::has_many(super::images::Entity).into(),
Self::ParkingSpaces => Entity::has_many(super::parking_spaces::Entity).into(),
}
}
}
impl Related<super::images::Entity> for Entity {
fn to() -> RelationDef {
Relation::Images.def()
}
}
impl Related<super::parking_spaces::Entity> for Entity {
fn to() -> RelationDef {
Relation::ParkingSpaces.def()

View File

@ -23,6 +23,7 @@ impl EntityName for Entity {
DeriveActixAdmin,
DeriveActixAdminModel,
DeriveActixAdminViewModel,
serde::Serialize,
)]
pub struct Model {
#[actix_admin(primary_key)]
@ -59,7 +60,9 @@ impl PrimaryKeyTrait for PrimaryKey {
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {}
pub enum Relation {
Accounts,
}
impl ColumnTrait for Column {
type EntityName = Entity;
@ -78,7 +81,18 @@ impl ColumnTrait for Column {
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
panic!("No RelationDef")
match self {
Self::Accounts => Entity::belongs_to(super::accounts::Entity)
.from(Column::AccountId)
.to(super::accounts::Column::Id)
.into(),
}
}
}
impl Related<super::accounts::Entity> for Entity {
fn to() -> RelationDef {
Relation::Accounts.def()
}
}

View File

@ -21,6 +21,7 @@ impl EntityName for Entity {
DeriveActixAdmin,
DeriveActixAdminModel,
DeriveActixAdminViewModel,
serde::Serialize,
)]
pub struct Model {
#[actix_admin(primary_key)]

View File

@ -23,6 +23,7 @@ impl EntityName for Entity {
DeriveActixAdmin,
DeriveActixAdminModel,
DeriveActixAdminViewModel,
serde::Serialize,
)]
pub struct Model {
#[actix_admin(primary_key)]

View File

@ -4,7 +4,7 @@ use sea_orm::entity::prelude::*;
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "image_state")]
#[derive(oswilno_actix_admin::ActixAdminEnum)]
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
pub enum ImageState {
#[sea_orm(string_value = "approved")]
Approved,
@ -19,7 +19,7 @@ pub enum ImageState {
db_type = "Enum",
enum_name = "parking_space_state"
)]
#[derive(oswilno_actix_admin::ActixAdminEnum)]
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
pub enum ParkingSpaceState {
#[sea_orm(string_value = "Banned")]
Banned,
@ -30,7 +30,7 @@ pub enum ParkingSpaceState {
}
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "userrole")]
#[derive(oswilno_actix_admin::ActixAdminEnum)]
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
pub enum Userrole {
#[sea_orm(string_value = "Admin")]
Admin,

View File

@ -1,4 +1,4 @@
use actix_web::web::{ServiceConfig, Data};
use actix_web::web::{Data, ServiceConfig};
use actix_web::{get, HttpResponse};
pub fn mount(config: &mut ServiceConfig) {
@ -7,9 +7,10 @@ pub fn mount(config: &mut ServiceConfig) {
#[get("/ps")]
async fn all_parking_spaces(db: Data<sea_orm::DatabaseConnection>) -> HttpResponse {
use sea_orm::*;
use oswilno_contract::{*, prelude::*};
use oswilno_contract::prelude::*;
use oswilno_contract::*;
use parking_spaces::*;
use sea_orm::*;
let db = db.into_inner();

View File

@ -1,6 +1,6 @@
[toolchain]
channel = "nightly-2022-10-29"
components = ['rust-analyzer', "rustfmt", "rustc-dev"]
components = ['rust-analyzer', "rustfmt"]
targets = []
profile = "default"

View File

@ -8,7 +8,7 @@ for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
sed -i 's/db_type().def()/db_type()/g' $f
# actix-admin patch
sed -i 's/pub struct Model {/#[derive(DeriveActixAdmin,DeriveActixAdminModel,DeriveActixAdminViewModel)]pub struct Model {#[actix_admin(primary_key)]/g' $f
sed -i 's/pub struct Model {/#[derive(DeriveActixAdmin,DeriveActixAdminModel,DeriveActixAdminViewModel,serde::Serialize)]pub struct Model {#[actix_admin(primary_key)]/g' $f
HAS_ENTITY=$(grep 'for Entity' $f)
if [[ "${HAS_ENTITY}" != "" ]]; then
echo "use actix_admin::prelude::*;" >> $f
@ -17,6 +17,6 @@ for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
fi
done
sed -i 's/pub enum/#[derive(oswilno_actix_admin::ActixAdminEnum)] pub enum/g' ./crates/oswilno-contract/src/sea_orm_active_enums.rs
sed -i 's/pub enum/#[derive(oswilno_actix_admin::ActixAdminEnum,serde::Serialize)] pub enum/g' ./crates/oswilno-contract/src/sea_orm_active_enums.rs
cargo fmt