1use reqwest::Error as ReqError;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, UrbitAPIError>;
5
6#[derive(Error, Debug)]
7pub enum UrbitAPIError {
8 #[error("Failed logging in to the ship given the provided url and code.")]
9 FailedToLogin,
10 #[error("Failed to create a new channel.")]
11 FailedToCreateNewChannel,
12 #[error("Failed to create a new subscription.")]
13 FailedToCreateNewSubscription,
14 #[error("Failed to fetch Graph Store keys.")]
15 FailedToFetchKeys,
16 #[error("Failed to fetch Graph Store tags.")]
17 FailedToFetchTags,
18 #[error("Failed to send a chat message to chat {0}.")]
19 FailedToSendChatMessage(String),
20 #[error("Failed to acquire update log from Graph Store for resource {0}.")]
21 FailedToGetUpdateLog(String),
22 #[error("Failed to acquire graph from Graph Store for resource {0}.")]
23 FailedToGetGraph(String),
24 #[error("Failed to acquire graph node from Graph Store for resource + index {0}.")]
25 FailedToGetGraphNode(String),
26 #[error("Failed to archive graph from Graph Store for resource {0}.")]
27 FailedToArchiveGraph(String),
28 #[error("Failed to add tag to resource {0}.")]
29 FailedToAddTag(String),
30 #[error("Failed to remove tag from resource {0}.")]
31 FailedToRemoveTag(String),
32 #[error("Failed to add nodes to Graph Store for resource {0}.")]
33 FailedToAddNodesToGraphStore(String),
34 #[error("Failed to remove nodes from Graph Store for resource {0}.")]
35 FailedToRemoveNodesFromGraphStore(String),
36 #[error("Failed to remove graph from Graph Store for resource {0}.")]
37 FailedToRemoveGraphFromGraphStore(String),
38 #[error("Failed to create a Graph inside of Graph Store on connected ship for resource {0}")]
39 FailedToCreateGraphInShip(String),
40 #[error("Failed to build a Graph struct from supplied JsonValue.")]
41 FailedToCreateGraphFromJSON,
42 #[error("Failed to build a Node struct from supplied JsonValue.")]
43 FailedToCreateGraphNodeFromJSON,
44 #[error("Failed to insert a Node struct into a Graph because of the index.")]
45 FailedToInsertGraphNode,
46 #[error("The following graph node is not a valid Notebook Note node {0}")]
47 InvalidNoteGraphNode(String),
48 #[error("The following graph node is not a valid Collections Link node {0}")]
49 InvalidLinkGraphNode(String),
50 #[error("The following graph node index is not a valid Notebook Note node index {0}")]
51 InvalidNoteGraphNodeIndex(String),
52 #[error("Failed to create a Notebook Note from these nodes {0}")]
53 FailedToCreateNote(String),
54 #[error("Failed to create a Notebook Comment from these nodes {0}")]
55 FailedToCreateComment(String),
56 #[error("The following graph node index is not a valid Notebook Comment node index {0}")]
57 InvalidCommentGraphNodeIndex(String),
58 #[error("{0}")]
59 Other(String),
60 #[error(transparent)]
61 ReqwestError(#[from] ReqError),
62}