pub mod query;
use crate::{
InternalError,
dto::state::AppCommand,
ops::{runtime::env::EnvOps, storage::state::app::AppStateOps},
workflow::cascade::{snapshot::StateSnapshotBuilder, state::StateCascadeWorkflow},
};
pub struct AppStateWorkflow;
impl AppStateWorkflow {
pub async fn execute_command(cmd: AppCommand) -> Result<(), InternalError> {
EnvOps::require_root()?;
AppStateOps::apply_command(cmd)?;
let snapshot = StateSnapshotBuilder::new()?
.with_app_state()
.with_subnet_state()
.build();
StateCascadeWorkflow::root_cascade_state(&snapshot).await?;
Ok(())
}
}