relay-knowledge 1.1.17

Graph-database-based knowledge graph project.
Documentation
//! Control-plane status mirroring after shard publication.

use std::sync::Arc;

use crate::{
    domain::CodeRepositoryStatus,
    storage::{SqliteGraphStore, StorageError},
};

use super::catalog::mirror_repository_status;

pub(super) async fn mirror_status(
    control: &Arc<SqliteGraphStore>,
    status: CodeRepositoryStatus,
) -> Result<(), StorageError> {
    let control = Arc::clone(control);
    control
        .run(move |connection| {
            let transaction = connection.transaction()?;
            mirror_repository_status(&transaction, &status)?;
            transaction.commit()?;
            Ok(())
        })
        .await
}

#[cfg(test)]
#[path = "mod_tests.rs"]
mod tests;