Skip to main content

wechat_oa_sdk/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, WeChatError>;
4
5#[derive(Debug, Error)]
6pub enum WeChatError {
7    #[error("HTTP request error: {0}")]
8    Http(#[from] reqwest::Error),
9
10    #[error("WeChat API error: [{errcode}] {errmsg}")]
11    Api { errcode: i64, errmsg: String },
12
13    #[error("XML parse error: {0}")]
14    Xml(#[from] quick_xml::DeError),
15
16    #[error("JSON parse error: {0}")]
17    Json(#[from] serde_json::Error),
18
19    #[error("Invalid signature")]
20    InvalidSignature,
21
22    #[error("Access token not available")]
23    TokenUnavailable,
24
25    #[error("Invalid AES key")]
26    InvalidAesKey,
27
28    #[error("Decryption failed: {0}")]
29    DecryptionFailed(String),
30
31    #[error("Encryption failed: {0}")]
32    EncryptionFailed(String),
33
34    #[error("Invalid message format")]
35    InvalidMessageFormat,
36
37    #[error("AppID mismatch")]
38    AppIdMismatch,
39
40    #[error("Encoding AES key not configured")]
41    AesKeyNotConfigured,
42}