Refactoring gruppe und rolle

This commit is contained in:
2026-05-28 20:24:27 +02:00
parent 52c0991545
commit 6810196226
20 changed files with 176 additions and 20 deletions

View File

@@ -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;

View 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,
}

View File

@@ -1,6 +1,5 @@
use async_graphql::InputObject;
use crate::scalar::Id;
use async_graphql::InputObject;
#[derive(InputObject)]
pub struct RolleUpdateInput {

View File

@@ -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()

View 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)
}
}

View File

@@ -1,4 +1,5 @@
mod rolle_erstellen;
mod rolle_loeschen;
mod rolle_update;
use super::repository::Repository;

View 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)
}
}