reactive_graph_client/client/json_schema/instances/
mod.rs

1pub mod entities;
2pub mod flows;
3pub mod relations;
4
5use crate::ReactiveGraphClientExecutionError;
6use crate::client::ReactiveGraphClient;
7use crate::client::json_schema::instances::entities::queries::get_json_schema_for_entity_instances;
8use crate::client::json_schema::instances::flows::queries::get_json_schema_for_flow_instances;
9use crate::client::json_schema::instances::relations::queries::get_json_schema_for_relation_instances;
10use cynic::http::ReqwestExt;
11use serde_json::Value;
12use std::sync::Arc;
13
14pub struct JsonSchemaInstanceSystem {
15    client: Arc<ReactiveGraphClient>,
16}
17
18impl JsonSchemaInstanceSystem {
19    pub fn new(client: Arc<ReactiveGraphClient>) -> Self {
20        Self { client }
21    }
22
23    pub async fn entities(&self) -> Result<Option<Value>, ReactiveGraphClientExecutionError> {
24        let json_schema = self
25            .client
26            .client
27            .post(self.client.url_reactive_graph())
28            .run_graphql(get_json_schema_for_entity_instances())
29            .await
30            .map_err(ReactiveGraphClientExecutionError::FailedToSendRequest)?
31            .data
32            .map(|data| data.json_schema.instances.entities);
33        Ok(json_schema)
34    }
35
36    pub async fn relations(&self) -> Result<Option<Value>, ReactiveGraphClientExecutionError> {
37        let json_schema = self
38            .client
39            .client
40            .post(self.client.url_reactive_graph())
41            .run_graphql(get_json_schema_for_relation_instances())
42            .await
43            .map_err(ReactiveGraphClientExecutionError::FailedToSendRequest)?
44            .data
45            .map(|data| data.json_schema.instances.relations);
46        Ok(json_schema)
47    }
48
49    pub async fn flows(&self) -> Result<Option<Value>, ReactiveGraphClientExecutionError> {
50        let json_schema = self
51            .client
52            .client
53            .post(self.client.url_reactive_graph())
54            .run_graphql(get_json_schema_for_flow_instances())
55            .await
56            .map_err(ReactiveGraphClientExecutionError::FailedToSendRequest)?
57            .data
58            .map(|data| data.json_schema.instances.flows);
59        Ok(json_schema)
60    }
61}