sagapay_sdk/
error.rs

1use thiserror::Error;
2
3/// SagaPay error types
4#[derive(Error, Debug)]
5pub enum Error {
6    /// Network error
7    #[error("Network error: {0}")]
8    NetworkError(#[from] reqwest::Error),
9
10    /// JSON serialization/deserialization error
11    #[error("JSON error: {0}")]
12    JsonError(#[from] serde_json::Error),
13
14    /// API error
15    #[error("API error: {status_code} - {message}")]
16    ApiError {
17        status_code: u16,
18        message: String,
19        error_code: Option<String>,
20    },
21
22    /// Missing required parameter
23    #[error("Missing required parameter: {0}")]
24    MissingParameter(String),
25
26    /// Invalid parameter value
27    #[error("Invalid parameter value: {0}")]
28    InvalidParameter(String),
29
30    /// Invalid signature
31    #[error("Invalid webhook signature")]
32    InvalidSignature,
33
34    /// Other errors
35    #[error("{0}")]
36    Other(String),
37}