dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
use sqlx::PgPool;

use dialtone_common::rest::actors::actor_model::OwnedActor;

use crate::db::actor::insert::{insert_actor, InsertActor};
use crate::db::actor::{ActorDbType, ActorVisibilityType};

/// For use in creating actors from other systems.
pub async fn create_actor(pool: &PgPool, actor_info: &OwnedActor) -> anyhow::Result<()> {
    let insert_data = InsertActor {
        actor_id: &actor_info.ap.id,
        actor_type: &ActorDbType::from(&actor_info.ap.ap_type),
        actor_acct: None,
        webfinger_jrd: Option::from(&actor_info.jrd),
        activity_pub: &actor_info.ap,
        private_key_pem: None,
        visibility: &ActorVisibilityType::Visible,
        system_data: None,
        owner_data: None,
    };
    insert_actor(pool, insert_data).await?;
    Ok(())
}