dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
use crate::db::actor_reference::ActorReferenceDbType;
use dialtone_common::rest::actors::actor_reference::ActorReferenceType;
use sqlx::{Executor, Postgres};

pub async fn insert_actor_reference(
    exec: impl Executor<'_, Database = Postgres>,
    subject_actor_id: &str,
    object_actor_id: &str,
    reference_type: &ActorReferenceType,
) -> Result<(), sqlx::Error> {
    let reference_type = ActorReferenceDbType::from(reference_type);
    sqlx::query(
        r#"
        insert into actor_reference
            (subject_actor_id, object_actor_id, reference_type)
        values
            ($1,               $2,              $3)
        returning subject_actor_id, object_actor_id
        "#,
    )
    .bind(subject_actor_id)
    .bind(object_actor_id)
    .bind(reference_type)
    .fetch_one(exec)
    .await?;
    Ok(())
}