use dialtone_common::rest::users::web_user::UserPrefs;
use sqlx::types::Json;
use sqlx::{Executor, Postgres, Row};
pub async fn update_user_prefs(
exec: impl Executor<'_, Database = Postgres>,
acct: &str,
preferences: UserPrefs,
) -> Result<Option<()>, sqlx::Error> {
let result = sqlx::query(
r#"
update user_principal
set preferences = $1
where acct = $2
returning acct
"#,
)
.bind(Json(preferences))
.bind(acct)
.fetch_optional(exec)
.await?;
match result {
None => Ok(None),
Some(row) => {
row.try_get::<String, usize>(0)?;
Ok(Some(()))
}
}
}