Refactoring gruppe und rolle
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
pub mod rolle;
|
||||
pub mod rolle_erstelle_input;
|
||||
pub mod rolle_loeschen_input;
|
||||
pub mod rolle_update_input;
|
||||
|
||||
pub use rolle::Rolle;
|
||||
pub use rolle_erstelle_input::RolleErstelleInput;
|
||||
pub use rolle_loeschen_input::RolleLoeschenInput;
|
||||
pub use rolle_update_input::RolleUpdateInput;
|
||||
|
||||
9
src/domain/rolle/model/rolle_loeschen_input.rs
Normal file
9
src/domain/rolle/model/rolle_loeschen_input.rs
Normal file
@@ -0,0 +1,9 @@
|
||||
use async_graphql::InputObject;
|
||||
|
||||
use crate::scalar::Id;
|
||||
|
||||
#[derive(InputObject)]
|
||||
pub struct RolleLoeschenInput {
|
||||
/// Die ID einer Rolle
|
||||
pub id: Id,
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
use async_graphql::InputObject;
|
||||
|
||||
use crate::scalar::Id;
|
||||
use async_graphql::InputObject;
|
||||
|
||||
#[derive(InputObject)]
|
||||
pub struct RolleUpdateInput {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
mod delete_rolle;
|
||||
mod find_all_rolle;
|
||||
mod find_rolle_by_id;
|
||||
mod rolle_erstellen;
|
||||
mod rolle_loeschen;
|
||||
mod rolle_update;
|
||||
mod rollen_dataloader;
|
||||
|
||||
@@ -13,7 +13,6 @@ impl Repository {
|
||||
Repository {}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Repository {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
|
||||
26
src/domain/rolle/repository/rolle_loeschen.rs
Normal file
26
src/domain/rolle/repository/rolle_loeschen.rs
Normal file
@@ -0,0 +1,26 @@
|
||||
use anyhow::Error;
|
||||
|
||||
use super::Repository;
|
||||
use crate::{
|
||||
database::Queryer,
|
||||
domain::rolle::{entity, model},
|
||||
};
|
||||
|
||||
impl Repository {
|
||||
pub async fn rolle_loeschen<'c, C: Queryer<'c>>(
|
||||
&self,
|
||||
db: C,
|
||||
rolle: &entity::Rolle,
|
||||
) -> Result<model::Rolle, Error> {
|
||||
const QUERY: &str = r#"
|
||||
DELETE FROM rollen WHERE id=$1 RETURNING id, rollenname, erstellt_am, geaendert_am;
|
||||
"#;
|
||||
|
||||
let rolle = sqlx::query_as::<_, model::Rolle>(QUERY)
|
||||
.bind(rolle.id)
|
||||
.fetch_one(db)
|
||||
.await?;
|
||||
|
||||
Ok(rolle)
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
mod rolle_erstellen;
|
||||
mod rolle_loeschen;
|
||||
mod rolle_update;
|
||||
|
||||
use super::repository::Repository;
|
||||
|
||||
21
src/domain/rolle/service/rolle_loeschen.rs
Normal file
21
src/domain/rolle/service/rolle_loeschen.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
use super::Service;
|
||||
use anyhow::Error;
|
||||
|
||||
use crate::domain::rolle::{
|
||||
entity,
|
||||
model::{self, RolleLoeschenInput},
|
||||
};
|
||||
|
||||
impl Service {
|
||||
pub async fn rolle_loeschen(&self, input: RolleLoeschenInput) -> Result<model::Rolle, Error> {
|
||||
let rolle_input = entity::Rolle {
|
||||
id: input.id,
|
||||
rollenname: String::new(),
|
||||
erstellt_am: None,
|
||||
geaendert_am: None,
|
||||
};
|
||||
|
||||
let deleted = self.repo.rolle_loeschen(&self.db, &rolle_input).await?;
|
||||
Ok(deleted)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user