slack_web_api/
error.rs

1#[derive(Debug)]
2pub enum SlackError {
3    ApiError(SlackApiError),
4    HttpError(SlackHttpError),
5    SystemError(SlackSystemError),
6}
7
8impl From<SlackApiError> for SlackError {
9    fn from(value: SlackApiError) -> Self {
10        SlackError::ApiError(value)
11    }
12}
13
14impl From<SlackHttpError> for SlackError {
15    fn from(value: SlackHttpError) -> Self {
16        SlackError::HttpError(value)
17    }
18}
19
20impl From<SlackSystemError> for SlackError {
21    fn from(value: SlackSystemError) -> Self {
22        SlackError::SystemError(value)
23    }
24}
25
26#[derive(Debug)]
27pub struct SlackApiError {
28    pub status: u16,
29    pub errors: Option<Vec<String>>,
30    pub warnings: Option<Vec<String>>,
31    pub http_response_body: Option<String>,
32}
33
34#[derive(Debug)]
35pub struct SlackHttpError {
36    pub status: u16,
37    pub http_response_body: Option<String>,
38}
39
40impl SlackHttpError {
41    pub fn new(status: u16, http_response_body: String) -> SlackHttpError {
42        SlackHttpError {
43            status,
44            http_response_body: Some(http_response_body),
45        }
46    }
47}
48
49#[derive(Debug)]
50pub struct SlackSystemError {
51    pub message: Option<String>,
52}
53
54impl SlackSystemError {
55    pub fn new(message: String) -> SlackSystemError {
56        SlackSystemError {
57            message: Some(message),
58        }
59    }
60}