1
1
use slack_morphism:: { errors:: SlackClientError , prelude:: * } ;
2
2
use vercel_runtime:: {
3
- lambda_http:: {
4
- http:: { Error , StatusCode } ,
5
- Error as LambdaError , Response ,
6
- } ,
7
- run, IntoResponse , Request ,
3
+ lambda_http:: { http:: StatusCode , Response } ,
4
+ run, Error , IntoResponse , Request ,
8
5
} ;
9
6
10
7
#[ derive( Debug , Clone ) ]
11
8
pub struct SlackMessage { }
12
9
13
10
impl SlackMessageTemplate for SlackMessage {
14
11
fn render_template ( & self ) -> SlackMessageContent {
15
- SlackMessageContent :: new ( ) . with_blocks ( slack_blocks ! [ some_into( SlackContextBlock :: new (
16
- slack_blocks! [ some ( md!( "你好, 世界!" ) ) ]
17
- ) ) ] )
12
+ SlackMessageContent :: new ( ) . with_blocks ( slack_blocks ! [ some_into(
13
+ SlackSectionBlock :: new ( ) . with_text ( md!( "你好, 世界!" . to_owned ( ) ) )
14
+ ) ] )
18
15
}
19
16
}
20
17
@@ -37,22 +34,21 @@ impl<T: SlackClientHttpConnector + Send + Sync> Lambda<'_, T> {
37
34
pub async fn handler ( & self , _req : Request ) -> Result < impl IntoResponse , Error > {
38
35
let message = SlackMessage { } ;
39
36
40
- self . post_message ( & message, "#general" ) . await . unwrap ( ) ;
37
+ self . post_message ( & message, "#general" ) . await ? ;
41
38
42
39
let response = Response :: builder ( ) . status ( StatusCode :: OK ) . body ( ( ) ) ?;
43
40
Ok ( response)
44
41
}
45
42
}
46
43
47
44
#[ tokio:: main]
48
- async fn main ( ) -> Result < ( ) , LambdaError > {
45
+ async fn main ( ) -> Result < ( ) , Error > {
49
46
let slack_client = SlackClient :: new ( SlackClientHyperConnector :: new ( ) ) ;
50
47
let token_value: SlackApiTokenValue = std:: env:: var ( "SLACK_API_TOKEN" ) ?. into ( ) ;
51
48
let token: SlackApiToken = SlackApiToken :: new ( token_value) ;
52
49
let slack = slack_client. open_session ( & token) ;
53
50
54
51
let lambda = Lambda { slack } ;
55
52
56
- run ( |e| lambda. handler ( e) ) . await ?;
57
- Ok ( ( ) )
53
+ run ( |e| lambda. handler ( e) ) . await
58
54
}
0 commit comments