Files
axum-async-graphql/src/dataloader/benutzer_rollen.rs
2026-05-31 20:37:12 +02:00

52 lines
1.4 KiB
XML

// use async_graphql::dataloader::*;
// use async_graphql::*;
// use itertools::Itertools;
// use std::collections::HashMap;
// use std::sync::Arc;
//
// use crate::domain::rolle::model::Rolle;
// use crate::scalar::Id;
//
// pub struct BenutzerRollenLoader {
// pub pool: sqlx::PgPool,
// }
//
// impl Loader<Id> for BenutzerRollenLoader {
// type Value = Vec<Rolle>;
// type Error = Arc<sqlx::Error>;
//
// async fn load(&self, keys: &[Id]) -> Result<HashMap<Id, Self::Value>, Self::Error> {
// let rows = sqlx::query!(
// r#"
// SELECT
// br.benutzer_id,
// r.id,
// r.rollenname,
// r.erstellt_am,
// r.geaendert_am
// FROM rollen AS r
// LEFT JOIN benutzer_rollen AS br ON r.id = br.rolle_id
// WHERE br.benutzer_id = ANY($1);
// "#,
// keys
// )
// .fetch_all(&self.pool)
// .await?
// .into_iter()
// .map(|row| {
// (
// row.benutzer_id,
// Rolle {
// id: row.id,
// rollenname: row.rollenname,
// erstellt_am: row.erstellt_am,
// geaendert_am: row.geaendert_am,
// },
// )
// })
// .into_group_map();
//
// Ok(rows)
// }
// }