From ea51a0668d79e5059ca4f0e61aa0602adbcfaed0 Mon Sep 17 00:00:00 2001 From: Peter Date: Wed, 27 May 2026 15:42:48 +0200 Subject: [PATCH] rolle update bugfixes --- src/domain/rolle/model.rs | 1 + src/domain/rolle/repository/rolle_update.rs | 6 +++--- src/domain/rolle/service.rs | 1 + src/domain/rolle/service/rolle_update.rs | 22 +++++++++++++++++++++ src/mutations/rolle.rs | 9 ++++++++- 5 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/domain/rolle/service/rolle_update.rs diff --git a/src/domain/rolle/model.rs b/src/domain/rolle/model.rs index 1c9c66f..691edf6 100644 --- a/src/domain/rolle/model.rs +++ b/src/domain/rolle/model.rs @@ -4,3 +4,4 @@ pub mod rolle_update_input; pub use rolle::Rolle; pub use rolle_erstelle_input::RolleErstelleInput; +pub use rolle_update_input::RolleUpdateInput; diff --git a/src/domain/rolle/repository/rolle_update.rs b/src/domain/rolle/repository/rolle_update.rs index fc1f00f..b4b7124 100644 --- a/src/domain/rolle/repository/rolle_update.rs +++ b/src/domain/rolle/repository/rolle_update.rs @@ -12,14 +12,14 @@ impl Repository { ) -> Result { const QUERY: &str = r#" UPDATE rollen - SET geaendert_am = $2, rollennname = $3 WHERE id = $1 - RETURNING id, geaendert_am, rollenname, rollenname; + SET geaendert_am = $2, rollenname = $3 WHERE id = $1 + RETURNING id, erstellt_am, geaendert_am, rollenname; "#; let rolle = sqlx::query_as::<_, model::Rolle>(QUERY) .bind(rolle.id) .bind(rolle.geaendert_am) - .bind(&rolle.gruppenname) + .bind(&rolle.rollenname) .fetch_one(db) .await?; diff --git a/src/domain/rolle/service.rs b/src/domain/rolle/service.rs index a782a23..519bac8 100644 --- a/src/domain/rolle/service.rs +++ b/src/domain/rolle/service.rs @@ -1,4 +1,5 @@ mod rolle_erstellen; +mod rolle_update; use super::repository::Repository; use crate::database::DB; diff --git a/src/domain/rolle/service/rolle_update.rs b/src/domain/rolle/service/rolle_update.rs new file mode 100644 index 0000000..fb966cb --- /dev/null +++ b/src/domain/rolle/service/rolle_update.rs @@ -0,0 +1,22 @@ +use anyhow::Error; +use chrono::Utc; + +use super::Service; +use crate::domain::rolle::{ + entity, + model::{self, RolleUpdateInput}, +}; + +impl Service { + pub async fn rolle_update(&self, input: RolleUpdateInput) -> Result { + let rolle_input = entity::Rolle { + id: input.id, + rollenname: input.rollenname, + erstellt_am: None, + geaendert_am: Some(Utc::now()), + }; + + let rolle = self.repo.rolle_update(&self.db, &rolle_input).await?; + Ok(rolle) + } +} diff --git a/src/mutations/rolle.rs b/src/mutations/rolle.rs index 5ca7a28..e64364b 100644 --- a/src/mutations/rolle.rs +++ b/src/mutations/rolle.rs @@ -1,5 +1,5 @@ use crate::domain::rolle::{ - model::{Rolle, RolleErstelleInput}, + model::{Rolle, RolleErstelleInput, RolleUpdateInput}, service::Service, }; use async_graphql::{Context, FieldResult}; @@ -20,4 +20,11 @@ impl RolleMutation { let gruppe = Service::new(pool.clone()).rolle_erstellen(input).await?; Ok(gruppe) } + + async fn rolle_update(&self, ctx: &Context<'_>, input: RolleUpdateInput) -> FieldResult { + let pool = ctx.data::()?; + + let gruppe = Service::new(pool.clone()).rolle_update(input).await?; + Ok(gruppe) + } }