@@ -20,82 +20,94 @@ impl Client {
20
20
}
21
21
}
22
22
23
- pub async fn generate_auth_key ( & self , seconds_valid : i32 ) -> Response {
24
- self . post_empty ( & format ! ( "key/{}" , & seconds_valid) ) . await
23
+ pub async fn generate_auth_key ( & self , seconds_valid : i32 , headers : Option < HeaderMap > ) -> Response {
24
+ self . post_empty ( & format ! ( "key/{}" , & seconds_valid) , headers ) . await
25
25
}
26
26
27
- pub async fn add_auth_key ( & self , add_key_form : AddKeyForm ) -> Response {
28
- self . post_form ( "keys" , & add_key_form) . await
27
+ pub async fn add_auth_key ( & self , add_key_form : AddKeyForm , headers : Option < HeaderMap > ) -> Response {
28
+ self . post_form ( "keys" , & add_key_form, headers ) . await
29
29
}
30
30
31
- pub async fn delete_auth_key ( & self , key : & str ) -> Response {
32
- self . delete ( & format ! ( "key/{}" , & key) ) . await
31
+ pub async fn delete_auth_key ( & self , key : & str , headers : Option < HeaderMap > ) -> Response {
32
+ self . delete ( & format ! ( "key/{}" , & key) , headers ) . await
33
33
}
34
34
35
- pub async fn reload_keys ( & self ) -> Response {
36
- self . get ( "keys/reload" , Query :: default ( ) ) . await
35
+ pub async fn reload_keys ( & self , headers : Option < HeaderMap > ) -> Response {
36
+ self . get ( "keys/reload" , Query :: default ( ) , headers ) . await
37
37
}
38
38
39
- pub async fn whitelist_a_torrent ( & self , info_hash : & str ) -> Response {
40
- self . post_empty ( & format ! ( "whitelist/{}" , & info_hash) ) . await
39
+ pub async fn whitelist_a_torrent ( & self , info_hash : & str , headers : Option < HeaderMap > ) -> Response {
40
+ self . post_empty ( & format ! ( "whitelist/{}" , & info_hash) , headers ) . await
41
41
}
42
42
43
- pub async fn remove_torrent_from_whitelist ( & self , info_hash : & str ) -> Response {
44
- self . delete ( & format ! ( "whitelist/{}" , & info_hash) ) . await
43
+ pub async fn remove_torrent_from_whitelist ( & self , info_hash : & str , headers : Option < HeaderMap > ) -> Response {
44
+ self . delete ( & format ! ( "whitelist/{}" , & info_hash) , headers ) . await
45
45
}
46
46
47
- pub async fn reload_whitelist ( & self ) -> Response {
48
- self . get ( "whitelist/reload" , Query :: default ( ) ) . await
47
+ pub async fn reload_whitelist ( & self , headers : Option < HeaderMap > ) -> Response {
48
+ self . get ( "whitelist/reload" , Query :: default ( ) , headers ) . await
49
49
}
50
50
51
- pub async fn get_torrent ( & self , info_hash : & str ) -> Response {
52
- self . get ( & format ! ( "torrent/{}" , & info_hash) , Query :: default ( ) ) . await
51
+ pub async fn get_torrent ( & self , info_hash : & str , headers : Option < HeaderMap > ) -> Response {
52
+ self . get ( & format ! ( "torrent/{}" , & info_hash) , Query :: default ( ) , headers ) . await
53
53
}
54
54
55
- pub async fn get_torrents ( & self , params : Query ) -> Response {
56
- self . get ( "torrents" , params) . await
55
+ pub async fn get_torrents ( & self , params : Query , headers : Option < HeaderMap > ) -> Response {
56
+ self . get ( "torrents" , params, headers ) . await
57
57
}
58
58
59
- pub async fn get_tracker_statistics ( & self ) -> Response {
60
- self . get ( "stats" , Query :: default ( ) ) . await
59
+ pub async fn get_tracker_statistics ( & self , headers : Option < HeaderMap > ) -> Response {
60
+ self . get ( "stats" , Query :: default ( ) , headers ) . await
61
61
}
62
62
63
- pub async fn get ( & self , path : & str , params : Query ) -> Response {
63
+ pub async fn get ( & self , path : & str , params : Query , headers : Option < HeaderMap > ) -> Response {
64
64
let mut query: Query = params;
65
65
66
66
if let Some ( token) = & self . connection_info . api_token {
67
67
query. add_param ( QueryParam :: new ( "token" , token) ) ;
68
68
} ;
69
69
70
- self . get_request_with_query ( path, query, None ) . await
70
+ self . get_request_with_query ( path, query, headers ) . await
71
71
}
72
72
73
- pub async fn post_empty ( & self , path : & str ) -> Response {
74
- reqwest:: Client :: new ( )
73
+ pub async fn post_empty ( & self , path : & str , headers : Option < HeaderMap > ) -> Response {
74
+ let builder = reqwest:: Client :: new ( )
75
75
. post ( self . base_url ( path) . clone ( ) )
76
- . query ( & ReqwestQuery :: from ( self . query_with_token ( ) ) )
77
- . send ( )
78
- . await
79
- . unwrap ( )
76
+ . query ( & ReqwestQuery :: from ( self . query_with_token ( ) ) ) ;
77
+
78
+ let builder = match headers {
79
+ Some ( headers) => builder. headers ( headers) ,
80
+ None => builder,
81
+ } ;
82
+
83
+ builder. send ( ) . await . unwrap ( )
80
84
}
81
85
82
- pub async fn post_form < T : Serialize + ?Sized > ( & self , path : & str , form : & T ) -> Response {
83
- reqwest:: Client :: new ( )
86
+ pub async fn post_form < T : Serialize + ?Sized > ( & self , path : & str , form : & T , headers : Option < HeaderMap > ) -> Response {
87
+ let builder = reqwest:: Client :: new ( )
84
88
. post ( self . base_url ( path) . clone ( ) )
85
89
. query ( & ReqwestQuery :: from ( self . query_with_token ( ) ) )
86
- . json ( & form)
87
- . send ( )
88
- . await
89
- . unwrap ( )
90
+ . json ( & form) ;
91
+
92
+ let builder = match headers {
93
+ Some ( headers) => builder. headers ( headers) ,
94
+ None => builder,
95
+ } ;
96
+
97
+ builder. send ( ) . await . unwrap ( )
90
98
}
91
99
92
- async fn delete ( & self , path : & str ) -> Response {
93
- reqwest:: Client :: new ( )
100
+ async fn delete ( & self , path : & str , headers : Option < HeaderMap > ) -> Response {
101
+ let builder = reqwest:: Client :: new ( )
94
102
. delete ( self . base_url ( path) . clone ( ) )
95
- . query ( & ReqwestQuery :: from ( self . query_with_token ( ) ) )
96
- . send ( )
97
- . await
98
- . unwrap ( )
103
+ . query ( & ReqwestQuery :: from ( self . query_with_token ( ) ) ) ;
104
+
105
+ let builder = match headers {
106
+ Some ( headers) => builder. headers ( headers) ,
107
+ None => builder,
108
+ } ;
109
+
110
+ builder. send ( ) . await . unwrap ( )
99
111
}
100
112
101
113
pub async fn get_request_with_query ( & self , path : & str , params : Query , headers : Option < HeaderMap > ) -> Response {
0 commit comments