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)
}