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}