Files
axum-async-graphql/src/domain/benutzer/mutation/benutzer.rs

58 lines
1.5 KiB
Rust
Raw Normal View History

use crate::domain::benutzer::{
2026-06-17 21:46:21 +02:00
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<Benutzer> {
let pool = ctx.data::<PgPool>()?.clone();
let benutzer = Service::new(pool).benutzer_erstellen(input).await?;
Ok(benutzer)
}
// async fn erstelle_viele_benutzer(
// &self,
// ctx: &Context<'_>,
// input: Vec<BenutzerErstelleInput>,
// ) -> FieldResult<Vec<Benutzer>> {
// let pool = ctx.data::<PgPool>()?.clone();
//
// let benutzer = Service::new(pool).benutzer_erstellen_viele(&input).await?;
// Ok(benutzer)
// }
2026-06-17 21:46:21 +02:00
async fn update_benutzer(
&self,
ctx: &Context<'_>,
input: BenutzerUpdateInput,
) -> FieldResult<Benutzer> {
let pool = ctx.data::<PgPool>()?;
let benutzer = Service::new(pool.clone()).benutzer_update(input).await?;
Ok(benutzer)
}
async fn loesche_benutzer(
&self,
ctx: &Context<'_>,
input: BenutzerLoeschenInput,
) -> FieldResult<Benutzer> {
let pool = ctx.data::<PgPool>()?.clone();
let benutzer = Service::new(pool).benutzer_loeschen(input).await?;
Ok(benutzer)
}
}