58 lines
1.5 KiB
Rust
58 lines
1.5 KiB
Rust
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<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)
|
|
// }
|
|
|
|
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)
|
|
}
|
|
}
|