reactive_graph_client/client/json_schema/instances/
mod.rs1pub 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}