Something went wrong. Try again.
A small api and web interface to lookup some general information about ATProto users
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233use axum::{Json, http::StatusCode, response::{IntoResponse, Response}};use serde_json::json;use thiserror::Error;
use crate::errors::atproto_error::ResolveError;
#[derive(Debug, Error)]pub enum ApiError { #[error(transparent)] Resolve(#[from] ResolveError),
#[error("An unknown error occurred")] Unknown, #[error(transparent)] Redis(#[from] redis::RedisError),}
impl IntoResponse for ApiError { fn into_response(self) -> Response { match self { Self::Resolve(err) => err.into_response(), Self::Unknown => ( StatusCode::INTERNAL_SERVER_ERROR, Json(json!({ "error": "An unknown error occurred" })), ).into_response(), ApiError::Redis(redis_error) => ( StatusCode::INTERNAL_SERVER_ERROR, Json(json!({ "error": format!("An internal redis error occurred: {redis_error}") })) ).into_response(), } }}