Skip to content

Commit 9094938

Browse files
authored
controllers/helpers/pagination: Remove generic parameter from gather() fn (#10190)
1 parent c318fff commit 9094938

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/controllers/helpers/pagination.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use diesel_async::AsyncPgConnection;
1616
use futures_util::future::BoxFuture;
1717
use futures_util::{FutureExt, TryStreamExt};
1818
use http::header;
19+
use http::request::Parts;
1920
use indexmap::IndexMap;
2021
use serde::{Deserialize, Serialize};
2122

@@ -76,8 +77,8 @@ impl PaginationOptionsBuilder {
7677
self
7778
}
7879

79-
pub(crate) fn gather<T: RequestPartsExt>(self, req: &T) -> AppResult<PaginationOptions> {
80-
let params = req.query();
80+
pub(crate) fn gather(self, parts: &Parts) -> AppResult<PaginationOptions> {
81+
let params = parts.query();
8182
let page_param = params.get("page");
8283
let seek_param = params.get("seek");
8384

@@ -100,16 +101,16 @@ impl PaginationOptionsBuilder {
100101
}
101102

102103
if numeric_page > MAX_PAGE_BEFORE_SUSPECTED_BOT {
103-
req.request_log().add("bot", "suspected");
104+
parts.request_log().add("bot", "suspected");
104105
}
105106

106107
// Block large offsets for known violators of the crawler policy
107108
if self.limit_page_numbers {
108-
let config = &req.app().config;
109+
let config = &parts.app().config;
109110
if numeric_page > config.max_allowed_page_offset
110-
&& is_useragent_or_ip_blocked(config, req)
111+
&& is_useragent_or_ip_blocked(config, parts)
111112
{
112-
req.request_log().add("cause", "large page offset");
113+
parts.request_log().add("cause", "large page offset");
113114

114115
let error =
115116
format!("Page {numeric_page} is unavailable for performance reasons. Please take a look at https://crates.io/data-access for alternatives.");
@@ -739,12 +740,14 @@ mod tests {
739740
);
740741
}
741742

742-
fn mock(query: &str) -> Request<()> {
743+
fn mock(query: &str) -> Parts {
743744
Request::builder()
744745
.method(Method::GET)
745746
.uri(format!("/?{query}"))
746747
.body(())
747748
.unwrap()
749+
.into_parts()
750+
.0
748751
}
749752

750753
fn assert_pagination_error(options: PaginationOptionsBuilder, query: &str, message: &str) {

0 commit comments

Comments
 (0)