diff --git a/src/canteen/mod.rs b/src/canteen/mod.rs index 6e76e52..3816b7a 100644 --- a/src/canteen/mod.rs +++ b/src/canteen/mod.rs @@ -176,13 +176,13 @@ impl Canteen { ENDPOINT, lat, long, geo.radius, ) }; - PaginatedList::new(url, *TTL_CANTEENS)?.consume() + PaginatedList::new(url, *TTL_CANTEENS).consume() } } fn fetch_dates_for_canteen(id: CanteenId) -> Result>>> { let url = format!("{}/canteens/{}/days", ENDPOINT, id,); - let days: Vec = fetch_json(url, *TTL_MEALS)?; + let days: Vec = PaginatedList::new(url, *TTL_MEALS).consume()?; Ok(days .into_iter() .map(|day| (day.date, Fetchable::None)) @@ -191,7 +191,7 @@ fn fetch_dates_for_canteen(id: CanteenId) -> Result Result> { let url = format!("{}/canteens/{}/days/{}/meals", ENDPOINT, id, date); - fetch_json(url, *TTL_MEALS) + PaginatedList::new(url, *TTL_MEALS).consume() } impl From for Canteen { diff --git a/src/pagination.rs b/src/pagination.rs index a8a6e85..6c13dd4 100644 --- a/src/pagination.rs +++ b/src/pagination.rs @@ -47,12 +47,12 @@ where /// /// Takes the `url` for the first page and a /// `local_ttl` for the cached values. - pub fn new>(url: S, ttl: Duration) -> Result { - Ok(PaginatedList { + pub fn new>(url: S, ttl: Duration) -> Self { + PaginatedList { ttl, next_page: Some(url.as_ref().into()), __item: PhantomData, - }) + } } }