We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent af0e6d3 commit cadd11cCopy full SHA for cadd11c
Cargo.lock
ids_std_sea/src/paginator/mod.rs
@@ -6,7 +6,33 @@ use sea_orm::{ConnectionTrait, Paginator, SelectorTrait};
6
7
use crate::convert::into::IntoDomain;
8
9
-pub async fn fetch_page<C, S, O, F>(
+pub async fn fetch_page<C, S>(
10
+ paginator: &Paginator<'_, C, S>,
11
+ query: &PaginationQuery,
12
+) -> Result<Page<S>, SelectRepoFailure>
13
+where
14
+ S: SelectorTrait<Item = S>,
15
+ C: ConnectionTrait,
16
+{
17
+ let page_info = paginator
18
+ .num_items_and_pages()
19
+ .await
20
+ .map_err(|err| err.into_domain())?;
21
+
22
+ let model_items: Vec<<S as SelectorTrait>::Item> = paginator
23
+ .fetch_page(query.page)
24
25
26
27
+ Ok(Page {
28
+ data: model_items,
29
+ total: page_info.number_of_items,
30
+ page: page_info.number_of_pages,
31
+ page_size: query.page_size,
32
+ })
33
+}
34
35
+pub async fn fetch_page_mapper<C, S, O, F>(
36
paginator: &Paginator<'_, C, S>,
37
query: &PaginationQuery,
38
mapper: F,
0 commit comments