dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
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)
}