31 lines
760 B
Rust
31 lines
760 B
Rust
|
|
use anyhow::Error;
|
||
|
|
|
||
|
|
use super::Repository;
|
||
|
|
use crate::{
|
||
|
|
database::Queryer,
|
||
|
|
domain::benutzer::{entity, model},
|
||
|
|
};
|
||
|
|
|
||
|
|
impl Repository {
|
||
|
|
pub async fn benutzer_update<'c, C: Queryer<'c>>(
|
||
|
|
&self,
|
||
|
|
db: C,
|
||
|
|
benutzer: &entity::BenutzerUpdate,
|
||
|
|
) -> Result<model::Benutzer, Error> {
|
||
|
|
const QUERY: &str = r#"
|
||
|
|
UPDATE benutzer
|
||
|
|
SET kennung = $2, geaendert_am = $3 WHERE id = $1
|
||
|
|
RETURNING id, typname, erstellt_am, geaendert_am;
|
||
|
|
"#;
|
||
|
|
|
||
|
|
let benutzer = sqlx::query_as::<_, model::Benutzer>(QUERY)
|
||
|
|
.bind(benutzer.id)
|
||
|
|
.bind(&benutzer.kennung)
|
||
|
|
.bind(benutzer.geaendert_am)
|
||
|
|
.fetch_one(db)
|
||
|
|
.await?;
|
||
|
|
|
||
|
|
Ok(benutzer)
|
||
|
|
}
|
||
|
|
}
|