Skip to content

Commit 5c71368

Browse files
committed
Simplify constructor.
1 parent 78f9001 commit 5c71368

File tree

4 files changed

+34
-32
lines changed

4 files changed

+34
-32
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "holiday_event_api"
3-
version = "1.1.0"
3+
version = "1.2.0"
44
edition = "2021"
55
license = "MIT"
66
description = "The Official Holiday and Event API for Rust."

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use holiday_event_api::{
2929
#[tokio::main]
3030
async fn main() {
3131
// Get a FREE API key from https://apilayer.com/marketplace/checkiday-api#pricing
32-
let client = HolidayEventApi::new("<your API key>".into(), None);
32+
let client = HolidayEventApi::new("<your API key>");
3333

3434
if client.is_err() {
3535
println!("{}", client.unwrap_err());

examples/example.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use holiday_event_api::{
66
#[tokio::main]
77
async fn main() {
88
// Get a FREE API key from https://apilayer.com/marketplace/checkiday-api#pricing
9-
let client = HolidayEventApi::new("<your API key>", None);
9+
let client = HolidayEventApi::new("<your API key>");
1010

1111
if client.is_err() {
1212
println!("{}", client.unwrap_err());

src/lib.rs

+31-29
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ pub struct HolidayEventApi {
1616
static APP_USER_AGENT: &str = concat!("HolidayApiRust/", env!("CARGO_PKG_VERSION"));
1717

1818
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> {
2024
let api_key_header = HeaderValue::try_from(api_key);
2125
if api_key.is_empty() || api_key_header.is_err() {
2226
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 {
3741
return Err("Error instantiating client.".into());
3842
};
3943

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 {
4345
return Err("Invalid base_url.".into());
4446
};
4547

@@ -168,21 +170,21 @@ mod tests {
168170

169171
#[test]
170172
fn fails_with_missing_api_key() {
171-
let result = HolidayEventApi::new("", None);
173+
let result = HolidayEventApi::new("");
172174
assert!(result.is_err());
173175
assert_eq!("Please provide a valid API key. Get one at https://apilayer.com/marketplace/checkiday-api#pricing.".to_string(), result.unwrap_err());
174176
}
175177

176178
#[test]
177179
fn fails_with_invalid_base_url() {
178-
let result = HolidayEventApi::new("abc123", Some("derp"));
180+
let result = HolidayEventApi::new_internal("abc123", "derp");
179181
assert!(result.is_err());
180182
assert_eq!("Invalid base_url.".to_string(), result.unwrap_err());
181183
}
182184

183185
#[test]
184186
fn returns_a_new_client() {
185-
assert!(HolidayEventApi::new("abc123", None).is_ok());
187+
assert!(HolidayEventApi::new("abc123").is_ok());
186188
}
187189
}
188190

@@ -200,7 +202,7 @@ mod tests {
200202
.with_body_from_file("testdata/getEvents-default.json")
201203
.create();
202204

203-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
205+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
204206
assert!(aw!(api.get_events(model::GetEventsRequest {
205207
date: None,
206208
adult: None,
@@ -226,7 +228,7 @@ mod tests {
226228
.with_body_from_file("testdata/getEvents-default.json")
227229
.create();
228230

229-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
231+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
230232
assert!(aw!(api.get_events(model::GetEventsRequest {
231233
date: None,
232234
adult: None,
@@ -249,7 +251,7 @@ mod tests {
249251
.with_body_from_file("testdata/getEvents-default.json")
250252
.create();
251253

252-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
254+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
253255
assert!(aw!(api.get_events(model::GetEventsRequest {
254256
date: None,
255257
adult: None,
@@ -271,7 +273,7 @@ mod tests {
271273
.with_body("{\"error\":\"MyError!\"}")
272274
.create();
273275

274-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
276+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
275277
let result = aw!(api.get_events(model::GetEventsRequest {
276278
date: None,
277279
adult: None,
@@ -293,7 +295,7 @@ mod tests {
293295
.with_status(500)
294296
.create();
295297

296-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
298+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
297299
let result = aw!(api.get_events(model::GetEventsRequest {
298300
date: None,
299301
adult: None,
@@ -315,7 +317,7 @@ mod tests {
315317
.with_status(599)
316318
.create();
317319

318-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
320+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
319321
let result = aw!(api.get_events(model::GetEventsRequest {
320322
date: None,
321323
adult: None,
@@ -330,7 +332,7 @@ mod tests {
330332
#[test]
331333
fn server_error_other() {
332334
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();
334336
let result = aw!(api.get_events(model::GetEventsRequest {
335337
date: None,
336338
adult: None,
@@ -356,7 +358,7 @@ mod tests {
356358
.with_body("{")
357359
.create();
358360

359-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
361+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
360362
let result = aw!(api.get_events(model::GetEventsRequest {
361363
date: None,
362364
adult: None,
@@ -386,7 +388,7 @@ mod tests {
386388
.with_body_from_file("testdata/getEvents-default.json")
387389
.create();
388390

389-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
391+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
390392
assert!(aw!(api.get_events(model::GetEventsRequest {
391393
date: None,
392394
adult: None,
@@ -410,7 +412,7 @@ mod tests {
410412
.with_body_from_file("testdata/getEvents-default.json")
411413
.create();
412414

413-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
415+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
414416
let result = aw!(api.get_events(model::GetEventsRequest {
415417
date: None,
416418
adult: None,
@@ -443,7 +445,7 @@ mod tests {
443445
.with_body_from_file("testdata/getEvents-default.json")
444446
.create();
445447

446-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
448+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
447449
let result = aw!(api.get_events(model::GetEventsRequest {
448450
date: None,
449451
adult: None,
@@ -511,7 +513,7 @@ mod tests {
511513
.with_body_from_file("testdata/getEvents-parameters.json")
512514
.create();
513515

514-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
516+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
515517
let result = aw!(api.get_events(model::GetEventsRequest {
516518
date: Some("now".into()),
517519
adult: Some(true),
@@ -566,7 +568,7 @@ mod tests {
566568
.with_body_from_file("testdata/getEventInfo-default.json")
567569
.create();
568570

569-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
571+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
570572
let result = aw!(api.get_event_info(model::GetEventInfoRequest {
571573
id: "f90b893ea04939d7456f30c54f68d7b4".into(),
572574
start: None,
@@ -675,7 +677,7 @@ mod tests {
675677
.with_body_from_file("testdata/getEventInfo-parameters.json")
676678
.create();
677679

678-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
680+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
679681
let result = aw!(api.get_event_info(model::GetEventInfoRequest {
680682
id: "f90b893ea04939d7456f30c54f68d7b4".into(),
681683
start: Some(2002),
@@ -767,7 +769,7 @@ mod tests {
767769
.with_body_from_file("testdata/getEventInfo-starter.json")
768770
.create();
769771

770-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
772+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
771773
let result = aw!(api.get_event_info(model::GetEventInfoRequest {
772774
id: "1a85c01ea2a6e3f921667c59391aa7ee".into(),
773775
start: None,
@@ -817,7 +819,7 @@ mod tests {
817819
.with_body("{\"error\":\"Event not found.\"}")
818820
.create();
819821

820-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
822+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
821823
let result = aw!(api.get_event_info(model::GetEventInfoRequest {
822824
id: "hi".into(),
823825
start: None,
@@ -832,7 +834,7 @@ mod tests {
832834

833835
#[test]
834836
fn missing_id() {
835-
let api = HolidayEventApi::new("abc123", None).unwrap();
837+
let api = HolidayEventApi::new("abc123").unwrap();
836838
let result = aw!(api.get_event_info(model::GetEventInfoRequest {
837839
id: "".into(),
838840
start: None,
@@ -857,7 +859,7 @@ mod tests {
857859
.with_body_from_file("testdata/search-default.json")
858860
.create();
859861

860-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
862+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
861863
let result = aw!(api.search(model::SearchRequest {
862864
query: "zucchini".into(),
863865
adult: None,
@@ -896,7 +898,7 @@ mod tests {
896898
.with_body_from_file("testdata/search-parameters.json")
897899
.create();
898900

899-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
901+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
900902
let result = aw!(api.search(model::SearchRequest {
901903
query: "porch day".into(),
902904
adult: Some(true),
@@ -930,7 +932,7 @@ mod tests {
930932
.with_body("{\"error\":\"Please enter a longer search term.\"}")
931933
.create();
932934

933-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
935+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
934936
let result = aw!(api.search(model::SearchRequest {
935937
query: "a".into(),
936938
adult: None,
@@ -953,7 +955,7 @@ mod tests {
953955
.with_body("{\"error\":\"Too many results returned. Please refine your query.\"}")
954956
.create();
955957

956-
let api = HolidayEventApi::new("abc123", Some(&server.url())).unwrap();
958+
let api = HolidayEventApi::new_internal("abc123", &server.url()).unwrap();
957959
let result = aw!(api.search(model::SearchRequest {
958960
query: "day".into(),
959961
adult: None,
@@ -970,7 +972,7 @@ mod tests {
970972

971973
#[test]
972974
fn missing_parameters() {
973-
let api = HolidayEventApi::new("abc123", None).unwrap();
975+
let api = HolidayEventApi::new("abc123").unwrap();
974976
let result = aw!(api.search(model::SearchRequest {
975977
query: "".into(),
976978
adult: None,

0 commit comments

Comments
 (0)