File tree 1 file changed +16
-1
lines changed
examples/showcase/server/src
1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,22 @@ use perseus::{HttpRequest, Request};
3
3
// TODO set up proper error handling in an integration crate
4
4
/// Converts an Actix Web request into an `http::request`.
5
5
pub fn convert_req ( raw : & actix_web:: HttpRequest ) -> Result < Request , String > {
6
- let req = HttpRequest :: builder ( )
6
+ let mut builder = HttpRequest :: builder ( ) ;
7
+ // Add headers one by one
8
+ for ( name, val) in raw. headers ( ) {
9
+ // Each method call consumes and returns `self`, so we re-self-assign
10
+ builder = builder. header ( name, val) ;
11
+ }
12
+ // The URI to which the request was sent
13
+ builder = builder. uri ( raw. uri ( ) ) ;
14
+ // The method (e.g. GET, POST, etc.)
15
+ builder = builder. method ( raw. method ( ) ) ;
16
+ // The HTTP version used
17
+ builder = builder. version ( raw. version ( ) ) ;
18
+
19
+ let req = builder
20
+ // We always use an empty body because, in a Perseus request, only the URI matters
21
+ // Any custom data should therefore be sent in headers (if you're doing that, consider a dedicated API)
7
22
. body ( ( ) )
8
23
. map_err ( |err| format ! ( "converting actix web request to perseus-compliant request failed: '{}'" , err) ) ?;
9
24
You can’t perform that action at this time.
0 commit comments