Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
at pocket 3.0 kB view raw
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 HealthCheckError { 51 #[error("failed to send checkin: {0}")] 52 HealthCheckError(#[from] reqwest::Error), 53} 54 55#[derive(Debug, Error)] 56pub enum MainTaskError { 57 #[error(transparent)] 58 ConsumerTaskError(#[from] ConsumerError), 59 #[error(transparent)] 60 ServerTaskError(#[from] ServerError), 61 #[error(transparent)] 62 IdentityTaskError(#[from] IdentityError), 63 #[error(transparent)] 64 HealthCheckError(#[from] HealthCheckError), 65 #[error("firehose cache failed to close: {0}")] 66 FirehoseCacheCloseError(foyer::Error), 67} 68 69#[derive(Debug, Error)] 70pub enum RecordError { 71 #[error("identity error: {0}")] 72 IdentityError(#[from] IdentityError), 73 #[error("repo could not be validated as either a DID or an atproto handle")] 74 BadRepo, 75 #[error("could not get record: {0}")] 76 NotFound(&'static str), 77 #[error("could nto parse pds url: {0}")] 78 UrlParseError(#[from] url::ParseError), 79 #[error("reqwest send failed: {0}")] 80 SendError(reqwest::Error), 81 #[error("reqwest raised for status: {0}")] 82 StatusError(reqwest::Error), 83 #[error("reqwest failed to parse json: {0}")] 84 ParseJsonError(reqwest::Error), 85 #[error("upstream getRecord did not include a CID")] 86 MissingUpstreamCid, 87 #[error("upstream CID was not valid: {0}")] 88 BadUpstreamCid(String), 89 #[error("upstream atproto-looking bad request")] 90 UpstreamBadRequest(ErrorResponseObject), 91 #[error("upstream non-atproto bad request")] 92 UpstreamBadBadNotGoodRequest(reqwest::Error), 93}