rolle update bugfixes

This commit is contained in:
2026-05-27 15:42:48 +02:00
parent 46322f94c6
commit ea51a0668d
5 changed files with 35 additions and 4 deletions

View File

@@ -4,3 +4,4 @@ pub mod rolle_update_input;
pub use rolle::Rolle; pub use rolle::Rolle;
pub use rolle_erstelle_input::RolleErstelleInput; pub use rolle_erstelle_input::RolleErstelleInput;
pub use rolle_update_input::RolleUpdateInput;

View File

@@ -12,14 +12,14 @@ impl Repository {
) -> Result<model::Rolle, Error> { ) -> Result<model::Rolle, Error> {
const QUERY: &str = r#" const QUERY: &str = r#"
UPDATE rollen UPDATE rollen
SET geaendert_am = $2, rollennname = $3 WHERE id = $1 SET geaendert_am = $2, rollenname = $3 WHERE id = $1
RETURNING id, geaendert_am, rollenname, rollenname; RETURNING id, erstellt_am, geaendert_am, rollenname;
"#; "#;
let rolle = sqlx::query_as::<_, model::Rolle>(QUERY) let rolle = sqlx::query_as::<_, model::Rolle>(QUERY)
.bind(rolle.id) .bind(rolle.id)
.bind(rolle.geaendert_am) .bind(rolle.geaendert_am)
.bind(&rolle.gruppenname) .bind(&rolle.rollenname)
.fetch_one(db) .fetch_one(db)
.await?; .await?;

View File

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

View File

@@ -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<model::Rolle, Error> {
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)
}
}

View File

@@ -1,5 +1,5 @@
use crate::domain::rolle::{ use crate::domain::rolle::{
model::{Rolle, RolleErstelleInput}, model::{Rolle, RolleErstelleInput, RolleUpdateInput},
service::Service, service::Service,
}; };
use async_graphql::{Context, FieldResult}; use async_graphql::{Context, FieldResult};
@@ -20,4 +20,11 @@ impl RolleMutation {
let gruppe = Service::new(pool.clone()).rolle_erstellen(input).await?; let gruppe = Service::new(pool.clone()).rolle_erstellen(input).await?;
Ok(gruppe) Ok(gruppe)
} }
async fn rolle_update(&self, ctx: &Context<'_>, input: RolleUpdateInput) -> FieldResult<Rolle> {
let pool = ctx.data::<PgPool>()?;
let gruppe = Service::new(pool.clone()).rolle_update(input).await?;
Ok(gruppe)
}
} }