reactive_graph_graphql_schema/error/
flow.rs1use 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 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::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}