dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
use crate::db::user_principal::WEB_USER_JSON_OBJECT;
use const_format::concatcp;
use sqlx::{Executor, Postgres};

use crate::db::return_optional;
use dialtone_common::rest::users::web_user::WebUser;

pub async fn fetch_user_info(
    exec: impl Executor<'_, Database = Postgres>,
    acct: &str,
) -> Result<Option<WebUser>, sqlx::Error> {
    let sql = concatcp!(
        "select ",
        WEB_USER_JSON_OBJECT,
        r#" 
            as "web_user: Json<WebUser>" from user_principal where acct = $1
        "#
    );
    let result = sqlx::query(sql).bind(acct).fetch_optional(exec).await?;
    return_optional(&result)
}