Skip to main content
Glama
error.rs1.74 kB
use serde::{Deserialize, Serialize}; use std::fmt; use tracing::error; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct RequestId(pub String); impl RequestId { #[must_use] pub fn new() -> Self { Self(uuid::Uuid::new_v4().to_string()) } } impl Default for RequestId { fn default() -> Self { Self::new() } } impl fmt::Display for RequestId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}", self.0) } } #[derive(Debug, thiserror::Error)] pub enum PolymarketError { #[error("API request failed: {message} (request_id: {request_id})")] Api { message: String, status_code: Option<u16>, request_id: RequestId, }, #[error("Network error: {message}")] Network { message: String }, #[error("Deserialization error: {message}")] Deserialization { message: String }, #[error("Configuration error: {message}")] Config { message: String }, } impl PolymarketError { pub fn api_error(message: impl Into<String>, status_code: Option<u16>) -> Self { Self::Api { message: message.into(), status_code, request_id: RequestId::new(), } } pub fn network_error(message: impl Into<String>) -> Self { Self::Network { message: message.into(), } } pub fn deserialization_error(message: impl Into<String>) -> Self { Self::Deserialization { message: message.into(), } } pub fn config_error(message: impl Into<String>) -> Self { Self::Config { message: message.into(), } } } pub type Result<T> = std::result::Result<T, PolymarketError>;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ozgureyilmaz/polymarket-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server