dialtone_sqlx 0.1.0

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

use dialtone_common::rest::actors::actor_model::PublicActor;

use crate::db::actor::PUBLIC_ACTOR_JSON_OBJECT;
use crate::db::return_optional;

pub async fn fetch_public_actor_by_id(
    exec: impl Executor<'_, Database = Postgres>,
    actor_id: &str,
) -> Result<Option<PublicActor>, sqlx::Error> {
    let sql = concatcp!(
        "select",
        PUBLIC_ACTOR_JSON_OBJECT,
        r#"
        as "public_actor: Json<PublicActor>" from actor where id = $1 and visibility = 'Visible'
        "#
    );
    let result = sqlx::query(sql).bind(actor_id).fetch_optional(exec).await?;
    return_optional(&result)
}