reactive_graph_graphql_schema/error/
flow.rs

1use std::fmt;
2
3use uuid::Uuid;
4
5use reactive_graph_graph::EntityTypeId;
6use reactive_graph_graph::FlowTypeId;
7use reactive_graph_graph::RelationInstanceId;
8use reactive_graph_graph::RelationTypeId;
9use reactive_graph_graph::TypeDefinitionGetter;
10
11#[derive(Debug)]
12pub enum FlowMutationError {
13    MissingFlow(Uuid),
14    FlowAlreadyExists(Uuid),
15    EntityInstanceCreationError(),
16    RelationInstanceCreationError(),
17    // MissingWrapperEntityInstance(Uuid),
18    WrapperEntityInstanceAlreadyExists(Uuid),
19    MissingEntityType(EntityTypeId),
20    MissingRelationType(RelationTypeId),
21    MissingFlowType(FlowTypeId),
22    MissingEntityInstance(Uuid),
23    MissingRelationInstance(RelationInstanceId),
24    MissingOutboundEntityInstance(Uuid),
25    MissingInboundEntityInstance(Uuid),
26    FlowInstanceDoesNotContainEntityInstance(Uuid),
27    FlowInstanceDoesNotContainRelationInstance(RelationInstanceId),
28}
29
30impl fmt::Display for FlowMutationError {
31    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32        match &self {
33            FlowMutationError::MissingFlow(id) => write!(f, "The flow {id} does not exist!"),
34            FlowMutationError::FlowAlreadyExists(id) => {
35                write!(f, "Can't create flow: The flow {id} already exist!")
36            }
37            FlowMutationError::EntityInstanceCreationError() => {
38                write!(f, "Can't create entity instance")
39            }
40            FlowMutationError::RelationInstanceCreationError() => {
41                write!(f, "Can't create relation instance")
42            }
43            // FlowMutationError::MissingWrapperEntityInstance(id) => write!(f, "Missing wrapper entity instance with the id {}", id),
44            FlowMutationError::WrapperEntityInstanceAlreadyExists(id) => write!(f, "Can't create flow: An entity instance with the id {id} already exists!"),
45            FlowMutationError::MissingEntityType(ty) => {
46                write!(f, "Entity type {} does not exist", ty.type_definition())
47            }
48            FlowMutationError::MissingRelationType(ty) => {
49                write!(f, "Relation type {} does not exist", ty.type_definition())
50            }
51            FlowMutationError::MissingFlowType(ty) => {
52                write!(f, "Flow type {} does not exist", ty.type_definition())
53            }
54            FlowMutationError::MissingEntityInstance(id) => {
55                write!(f, "Entity instance {id} does not exist")
56            }
57            FlowMutationError::MissingRelationInstance(relation_instance_id) => {
58                write!(f, "Relation instance {relation_instance_id:?} does not exist")
59            }
60            FlowMutationError::MissingOutboundEntityInstance(id) => {
61                write!(f, "Outbound entity instance {id} does not exist")
62            }
63            FlowMutationError::MissingInboundEntityInstance(id) => {
64                write!(f, "Inbound entity instance {id} does not exist")
65            }
66            FlowMutationError::FlowInstanceDoesNotContainEntityInstance(id) => {
67                write!(f, "Flow doesn't contain entity instance {id}")
68            }
69            FlowMutationError::FlowInstanceDoesNotContainRelationInstance(relation_instance_id) => {
70                write!(f, "Flow doesn't contain relation instance {:?}", relation_instance_id.clone())
71            }
72        }
73    }
74}