Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
1use crate::ErrorResponseObject; 2use thiserror::Error; 3 4#[derive(Debug, Error)] 5pub enum ConsumerError { 6 #[error(transparent)] 7 JetstreamConnectionError(#[from] jetstream::error::ConnectionError), 8 #[error(transparent)] 9 JetstreamConfigValidationError(#[from] jetstream::error::ConfigValidationError), 10 #[error("jetstream ended")] 11 JetstreamEnded, 12 #[error("delay queue output dropped")] 13 DelayQueueOutputDropped, 14} 15 16#[derive(Debug, Error)] 17pub enum ServerError { 18 #[error("server build error: {0}")] 19 AcmeBuildError(std::io::Error), 20 #[error("server exited: {0}")] 21 ServerExited(std::io::Error), 22} 23 24#[derive(Debug, Error)] 25pub enum IdentityError { 26 #[error("whatever: {0}")] 27 WhateverError(String), 28 #[error("bad DID: {0}")] 29 BadDid(&'static str), 30 #[error("identity types got mixed up: {0}")] 31 IdentityValTypeMixup(String), 32 #[error("foyer error: {0}")] 33 FoyerError(#[from] foyer::Error), 34 35 #[error("failed to resolve: {0}")] 36 ResolutionFailed(#[from] atrium_identity::Error), 37 // #[error("identity resolved but no handle found for user")] 38 // NoHandle, 39 #[error("found handle {0:?} but it appears invalid: {1}")] 40 InvalidHandle(String, &'static str), 41 42 #[error("could not convert atrium did doc to partial mini doc: {0}")] 43 BadDidDoc(String), 44 45 #[error("wrong key for clearing refresh queue: {0}")] 46 RefreshQueueKeyError(&'static str), 47} 48 49#[derive(Debug, Error)] 50pub enum MainTaskError { 51 #[error(transparent)] 52 ConsumerTaskError(#[from] ConsumerError), 53 #[error(transparent)] 54 ServerTaskError(#[from] ServerError), 55 #[error(transparent)] 56 IdentityTaskError(#[from] IdentityError), 57} 58 59#[derive(Debug, Error)] 60pub enum RecordError { 61 #[error("identity error: {0}")] 62 IdentityError(#[from] IdentityError), 63 #[error("repo could not be validated as either a DID or an atproto handle")] 64 BadRepo, 65 #[error("could not get record: {0}")] 66 NotFound(&'static str), 67 #[error("could nto parse pds url: {0}")] 68 UrlParseError(#[from] url::ParseError), 69 #[error("reqwest send failed: {0}")] 70 SendError(reqwest::Error), 71 #[error("reqwest raised for status: {0}")] 72 StatusError(reqwest::Error), 73 #[error("reqwest failed to parse json: {0}")] 74 ParseJsonError(reqwest::Error), 75 #[error("upstream getRecord did not include a CID")] 76 MissingUpstreamCid, 77 #[error("upstream CID was not valid: {0}")] 78 BadUpstreamCid(String), 79 #[error("upstream atproto-looking bad request")] 80 UpstreamBadRequest(ErrorResponseObject), 81 #[error("upstream non-atproto bad request")] 82 UpstreamBadBadNotGoodRequest(reqwest::Error), 83}