@@ -16,7 +16,11 @@ pub struct HolidayEventApi {
16
16
static APP_USER_AGENT : & str = concat ! ( "HolidayApiRust/" , env!( "CARGO_PKG_VERSION" ) ) ;
17
17
18
18
impl HolidayEventApi {
19
- pub fn new ( api_key : & str , base_url : Option < & str > ) -> Result < Self , String > {
19
+ pub fn new ( api_key : & str ) -> Result < Self , String > {
20
+ Self :: new_internal ( api_key, "https://api.apilayer.com/checkiday/" )
21
+ }
22
+
23
+ pub ( crate ) fn new_internal ( api_key : & str , base_url : & str ) -> Result < Self , String > {
20
24
let api_key_header = HeaderValue :: try_from ( api_key) ;
21
25
if api_key. is_empty ( ) || api_key_header. is_err ( ) {
22
26
return Err ( "Please provide a valid API key. Get one at https://apilayer.com/marketplace/checkiday-api#pricing." . into ( ) ) ;
@@ -37,9 +41,7 @@ impl HolidayEventApi {
37
41
return Err ( "Error instantiating client." . into ( ) ) ;
38
42
} ;
39
43
40
- let Ok ( base_url) = Url :: parse (
41
- base_url. unwrap_or ( "https://api.apilayer.com/checkiday/" ) ,
42
- ) else {
44
+ let Ok ( base_url) = Url :: parse ( base_url) else {
43
45
return Err ( "Invalid base_url." . into ( ) ) ;
44
46
} ;
45
47
@@ -168,21 +170,21 @@ mod tests {
168
170
169
171
#[ test]
170
172
fn fails_with_missing_api_key ( ) {
171
- let result = HolidayEventApi :: new ( "" , None ) ;
173
+ let result = HolidayEventApi :: new ( "" ) ;
172
174
assert ! ( result. is_err( ) ) ;
173
175
assert_eq ! ( "Please provide a valid API key. Get one at https://apilayer.com/marketplace/checkiday-api#pricing." . to_string( ) , result. unwrap_err( ) ) ;
174
176
}
175
177
176
178
#[ test]
177
179
fn fails_with_invalid_base_url ( ) {
178
- let result = HolidayEventApi :: new ( "abc123" , Some ( "derp" ) ) ;
180
+ let result = HolidayEventApi :: new_internal ( "abc123" , "derp" ) ;
179
181
assert ! ( result. is_err( ) ) ;
180
182
assert_eq ! ( "Invalid base_url." . to_string( ) , result. unwrap_err( ) ) ;
181
183
}
182
184
183
185
#[ test]
184
186
fn returns_a_new_client ( ) {
185
- assert ! ( HolidayEventApi :: new( "abc123" , None ) . is_ok( ) ) ;
187
+ assert ! ( HolidayEventApi :: new( "abc123" ) . is_ok( ) ) ;
186
188
}
187
189
}
188
190
@@ -200,7 +202,7 @@ mod tests {
200
202
. with_body_from_file ( "testdata/getEvents-default.json" )
201
203
. create ( ) ;
202
204
203
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
205
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
204
206
assert ! ( aw!( api. get_events( model:: GetEventsRequest {
205
207
date: None ,
206
208
adult: None ,
@@ -226,7 +228,7 @@ mod tests {
226
228
. with_body_from_file ( "testdata/getEvents-default.json" )
227
229
. create ( ) ;
228
230
229
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
231
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
230
232
assert ! ( aw!( api. get_events( model:: GetEventsRequest {
231
233
date: None ,
232
234
adult: None ,
@@ -249,7 +251,7 @@ mod tests {
249
251
. with_body_from_file ( "testdata/getEvents-default.json" )
250
252
. create ( ) ;
251
253
252
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
254
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
253
255
assert ! ( aw!( api. get_events( model:: GetEventsRequest {
254
256
date: None ,
255
257
adult: None ,
@@ -271,7 +273,7 @@ mod tests {
271
273
. with_body ( "{\" error\" :\" MyError!\" }" )
272
274
. create ( ) ;
273
275
274
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
276
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
275
277
let result = aw ! ( api. get_events( model:: GetEventsRequest {
276
278
date: None ,
277
279
adult: None ,
@@ -293,7 +295,7 @@ mod tests {
293
295
. with_status ( 500 )
294
296
. create ( ) ;
295
297
296
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
298
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
297
299
let result = aw ! ( api. get_events( model:: GetEventsRequest {
298
300
date: None ,
299
301
adult: None ,
@@ -315,7 +317,7 @@ mod tests {
315
317
. with_status ( 599 )
316
318
. create ( ) ;
317
319
318
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
320
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
319
321
let result = aw ! ( api. get_events( model:: GetEventsRequest {
320
322
date: None ,
321
323
adult: None ,
@@ -330,7 +332,7 @@ mod tests {
330
332
#[ test]
331
333
fn server_error_other ( ) {
332
334
let fake_url = "http://localhost" ;
333
- let api = HolidayEventApi :: new ( "abc123" , Some ( fake_url) ) . unwrap ( ) ;
335
+ let api = HolidayEventApi :: new_internal ( "abc123" , fake_url) . unwrap ( ) ;
334
336
let result = aw ! ( api. get_events( model:: GetEventsRequest {
335
337
date: None ,
336
338
adult: None ,
@@ -356,7 +358,7 @@ mod tests {
356
358
. with_body ( "{" )
357
359
. create ( ) ;
358
360
359
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
361
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
360
362
let result = aw ! ( api. get_events( model:: GetEventsRequest {
361
363
date: None ,
362
364
adult: None ,
@@ -386,7 +388,7 @@ mod tests {
386
388
. with_body_from_file ( "testdata/getEvents-default.json" )
387
389
. create ( ) ;
388
390
389
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
391
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
390
392
assert ! ( aw!( api. get_events( model:: GetEventsRequest {
391
393
date: None ,
392
394
adult: None ,
@@ -410,7 +412,7 @@ mod tests {
410
412
. with_body_from_file ( "testdata/getEvents-default.json" )
411
413
. create ( ) ;
412
414
413
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
415
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
414
416
let result = aw ! ( api. get_events( model:: GetEventsRequest {
415
417
date: None ,
416
418
adult: None ,
@@ -443,7 +445,7 @@ mod tests {
443
445
. with_body_from_file ( "testdata/getEvents-default.json" )
444
446
. create ( ) ;
445
447
446
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
448
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
447
449
let result = aw ! ( api. get_events( model:: GetEventsRequest {
448
450
date: None ,
449
451
adult: None ,
@@ -511,7 +513,7 @@ mod tests {
511
513
. with_body_from_file ( "testdata/getEvents-parameters.json" )
512
514
. create ( ) ;
513
515
514
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
516
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
515
517
let result = aw ! ( api. get_events( model:: GetEventsRequest {
516
518
date: Some ( "now" . into( ) ) ,
517
519
adult: Some ( true ) ,
@@ -566,7 +568,7 @@ mod tests {
566
568
. with_body_from_file ( "testdata/getEventInfo-default.json" )
567
569
. create ( ) ;
568
570
569
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
571
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
570
572
let result = aw ! ( api. get_event_info( model:: GetEventInfoRequest {
571
573
id: "f90b893ea04939d7456f30c54f68d7b4" . into( ) ,
572
574
start: None ,
@@ -675,7 +677,7 @@ mod tests {
675
677
. with_body_from_file ( "testdata/getEventInfo-parameters.json" )
676
678
. create ( ) ;
677
679
678
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
680
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
679
681
let result = aw ! ( api. get_event_info( model:: GetEventInfoRequest {
680
682
id: "f90b893ea04939d7456f30c54f68d7b4" . into( ) ,
681
683
start: Some ( 2002 ) ,
@@ -767,7 +769,7 @@ mod tests {
767
769
. with_body_from_file ( "testdata/getEventInfo-starter.json" )
768
770
. create ( ) ;
769
771
770
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
772
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
771
773
let result = aw ! ( api. get_event_info( model:: GetEventInfoRequest {
772
774
id: "1a85c01ea2a6e3f921667c59391aa7ee" . into( ) ,
773
775
start: None ,
@@ -817,7 +819,7 @@ mod tests {
817
819
. with_body ( "{\" error\" :\" Event not found.\" }" )
818
820
. create ( ) ;
819
821
820
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
822
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
821
823
let result = aw ! ( api. get_event_info( model:: GetEventInfoRequest {
822
824
id: "hi" . into( ) ,
823
825
start: None ,
@@ -832,7 +834,7 @@ mod tests {
832
834
833
835
#[ test]
834
836
fn missing_id ( ) {
835
- let api = HolidayEventApi :: new ( "abc123" , None ) . unwrap ( ) ;
837
+ let api = HolidayEventApi :: new ( "abc123" ) . unwrap ( ) ;
836
838
let result = aw ! ( api. get_event_info( model:: GetEventInfoRequest {
837
839
id: "" . into( ) ,
838
840
start: None ,
@@ -857,7 +859,7 @@ mod tests {
857
859
. with_body_from_file ( "testdata/search-default.json" )
858
860
. create ( ) ;
859
861
860
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
862
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
861
863
let result = aw ! ( api. search( model:: SearchRequest {
862
864
query: "zucchini" . into( ) ,
863
865
adult: None ,
@@ -896,7 +898,7 @@ mod tests {
896
898
. with_body_from_file ( "testdata/search-parameters.json" )
897
899
. create ( ) ;
898
900
899
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
901
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
900
902
let result = aw ! ( api. search( model:: SearchRequest {
901
903
query: "porch day" . into( ) ,
902
904
adult: Some ( true ) ,
@@ -930,7 +932,7 @@ mod tests {
930
932
. with_body ( "{\" error\" :\" Please enter a longer search term.\" }" )
931
933
. create ( ) ;
932
934
933
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
935
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
934
936
let result = aw ! ( api. search( model:: SearchRequest {
935
937
query: "a" . into( ) ,
936
938
adult: None ,
@@ -953,7 +955,7 @@ mod tests {
953
955
. with_body ( "{\" error\" :\" Too many results returned. Please refine your query.\" }" )
954
956
. create ( ) ;
955
957
956
- let api = HolidayEventApi :: new ( "abc123" , Some ( & server. url ( ) ) ) . unwrap ( ) ;
958
+ let api = HolidayEventApi :: new_internal ( "abc123" , & server. url ( ) ) . unwrap ( ) ;
957
959
let result = aw ! ( api. search( model:: SearchRequest {
958
960
query: "day" . into( ) ,
959
961
adult: None ,
@@ -970,7 +972,7 @@ mod tests {
970
972
971
973
#[ test]
972
974
fn missing_parameters ( ) {
973
- let api = HolidayEventApi :: new ( "abc123" , None ) . unwrap ( ) ;
975
+ let api = HolidayEventApi :: new ( "abc123" ) . unwrap ( ) ;
974
976
let result = aw ! ( api. search( model:: SearchRequest {
975
977
query: "" . into( ) ,
976
978
adult: None ,
0 commit comments