use crate::db::ap_object_reference::ApObjectReferenceDbType;
use dialtone_common::rest::ap_objects::ap_object_reference::ApObjectReferenceType;
use sqlx::{Executor, Postgres, Row};
pub async fn fetch_ap_object_references(
exec: impl Executor<'_, Database = Postgres>,
actor_id: &str,
ap_object_id: &str,
) -> Result<Vec<ApObjectReferenceType>, sqlx::Error> {
let result = sqlx::query(
r#"
select
reference_type
from ap_object_reference
where
actor_id = $1
and
ap_object_id = $2
"#,
)
.bind(actor_id)
.bind(ap_object_id)
.fetch_all(exec)
.await?;
let references = result
.iter()
.map(|row| row.get::<ApObjectReferenceDbType, usize>(0).into())
.collect();
Ok(references)
}