3
3
use async_trait:: async_trait;
4
4
use crates_io_env_vars:: { var, var_parsed} ;
5
5
use http:: StatusCode ;
6
- use reqwest:: IntoUrl ;
7
6
use serde:: Deserialize ;
8
7
use tracing:: warn;
9
8
use url:: Url ;
@@ -44,17 +43,15 @@ pub struct RealDocsRsClient {
44
43
}
45
44
46
45
impl RealDocsRsClient {
47
- pub fn new ( base_url : impl IntoUrl , api_token : impl Into < String > ) -> Result < Self , DocsRsError > {
48
- Ok ( Self {
46
+ pub fn new ( base_url : Url , api_token : impl Into < String > ) -> Self {
47
+ Self {
49
48
client : reqwest:: Client :: builder ( )
50
49
. user_agent ( "crates.io" )
51
50
. build ( )
52
51
. unwrap ( ) ,
53
- base_url : base_url
54
- . into_url ( )
55
- . map_err ( |err| DocsRsError :: Other ( err. into ( ) ) ) ?,
52
+ base_url,
56
53
api_token : api_token. into ( ) ,
57
- } )
54
+ }
58
55
}
59
56
60
57
pub fn from_environment ( ) -> Option < Self > {
@@ -69,7 +66,7 @@ impl RealDocsRsClient {
69
66
70
67
let api_token = var ( "DOCS_RS_API_TOKEN" ) . ok ( ) ??;
71
68
72
- Some ( Self :: new ( base_url, api_token) . expect ( "URL is always valid here" ) )
69
+ Some ( Self :: new ( base_url, api_token) )
73
70
}
74
71
}
75
72
@@ -142,7 +139,7 @@ mod tests {
142
139
let ( server, mock) = mock ( "krate" , "0.1.0" , StatusCode :: CREATED ) . await ;
143
140
mock. create ( ) ;
144
141
145
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
142
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
146
143
147
144
docs_rs. rebuild_docs ( "krate" , "0.1.0" ) . await ?;
148
145
@@ -154,7 +151,7 @@ mod tests {
154
151
let ( server, mock) = mock ( "krate" , "0.1.0" , StatusCode :: NOT_FOUND ) . await ;
155
152
mock. create ( ) ;
156
153
157
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
154
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
158
155
159
156
assert_matches ! (
160
157
docs_rs. rebuild_docs( "krate" , "0.1.0" ) . await ,
@@ -169,7 +166,7 @@ mod tests {
169
166
let ( server, mock) = mock ( "krate" , "0.1.0" , StatusCode :: TOO_MANY_REQUESTS ) . await ;
170
167
mock. create ( ) ;
171
168
172
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
169
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
173
170
174
171
assert_matches ! (
175
172
docs_rs. rebuild_docs( "krate" , "0.1.0" ) . await ,
@@ -186,7 +183,7 @@ mod tests {
186
183
let ( server, mock) = mock ( "krate" , "0.1.0" , status) . await ;
187
184
mock. create ( ) ;
188
185
189
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
186
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
190
187
191
188
assert_matches ! (
192
189
docs_rs. rebuild_docs( "krate" , "0.1.0" ) . await ,
@@ -204,7 +201,7 @@ mod tests {
204
201
} ) ) ?;
205
202
mock. with_body ( & body) . create ( ) ;
206
203
207
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
204
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
208
205
209
206
assert_matches ! (
210
207
docs_rs. rebuild_docs( "krate" , "0.1.0" ) . await ,
@@ -219,7 +216,7 @@ mod tests {
219
216
let ( server, mock) = mock ( "krate" , "0.1.0" , StatusCode :: INTERNAL_SERVER_ERROR ) . await ;
220
217
mock. create ( ) ;
221
218
222
- let docs_rs = RealDocsRsClient :: new ( server. url ( ) , "test_token" ) ? ;
219
+ let docs_rs = RealDocsRsClient :: new ( Url :: parse ( & server. url ( ) ) ? , "test_token" ) ;
223
220
224
221
assert_matches ! (
225
222
docs_rs. rebuild_docs( "krate" , "0.1.0" ) . await ,
0 commit comments