reactive_graph/client/
handler.rs

1use std::sync::Arc;
2
3use crate::client::commands::ClientCommands;
4use crate::client::instances::entities::entity_instances;
5use crate::client::instances::flows::flow_instances;
6use crate::client::instances::relations::relation_instances;
7use crate::client::introspection::introspection_query;
8use crate::client::result::CommandResult;
9use crate::client::system::command::execute_command;
10use crate::client::system::instance::instance_info;
11use crate::client::system::plugin::plugins;
12use crate::client::system::remotes::remotes;
13use crate::client::system::shutdown::shutdown;
14use crate::client::types::components::components;
15use crate::client::types::entities::entity_types;
16use crate::client::types::flows::flow_types;
17use crate::client::types::relations::relation_types;
18use reactive_graph_client::ReactiveGraphClient;
19
20pub(crate) async fn handle_command(client: &Arc<ReactiveGraphClient>, command: ClientCommands) -> CommandResult {
21    match command {
22        // System
23        ClientCommands::ExecuteCommand(args) => execute_command(client, args).await,
24        ClientCommands::InstanceInfo(args) => instance_info(client, args).await,
25        ClientCommands::Plugins(args) => plugins(client, args).await,
26        ClientCommands::Remotes(args) => remotes(client, args).await,
27        ClientCommands::Shutdown => shutdown(client).await,
28        // Type System
29        ClientCommands::Components(args) => components(client, args).await,
30        ClientCommands::EntityTypes(args) => entity_types(client, args).await,
31        ClientCommands::RelationTypes(args) => relation_types(client, args).await,
32        ClientCommands::FlowTypes(args) => flow_types(client, args).await,
33        // Instance System
34        ClientCommands::EntityInstances(args) => entity_instances(client, args).await,
35        ClientCommands::RelationInstances(args) => relation_instances(client, args).await,
36        ClientCommands::FlowInstances(args) => flow_instances(client, args).await,
37        // Introspection
38        ClientCommands::Introspection(args) => introspection_query(client, args).await,
39    }
40}