use crate::domain::benutzer::{ model::{Benutzer, BenutzerErstellenInput, BenutzerLoeschenInput, BenutzerUpdateInput}, service::Service, }; use async_graphql::{Context, FieldResult}; use sqlx::postgres::PgPool; #[derive(Default)] pub struct BenutzerMutation; #[async_graphql::Object] impl BenutzerMutation { async fn erstelle_benutzer( &self, ctx: &Context<'_>, input: BenutzerErstellenInput, ) -> FieldResult { let pool = ctx.data::()?.clone(); let benutzer = Service::new(pool).benutzer_erstellen(input).await?; Ok(benutzer) } // async fn erstelle_viele_benutzer( // &self, // ctx: &Context<'_>, // input: Vec, // ) -> FieldResult> { // let pool = ctx.data::()?.clone(); // // let benutzer = Service::new(pool).benutzer_erstellen_viele(&input).await?; // Ok(benutzer) // } async fn update_benutzer( &self, ctx: &Context<'_>, input: BenutzerUpdateInput, ) -> FieldResult { let pool = ctx.data::()?; let benutzer = Service::new(pool.clone()).benutzer_update(input).await?; Ok(benutzer) } async fn loesche_benutzer( &self, ctx: &Context<'_>, input: BenutzerLoeschenInput, ) -> FieldResult { let pool = ctx.data::()?.clone(); let benutzer = Service::new(pool).benutzer_loeschen(input).await?; Ok(benutzer) } }