Skip to content

Commit 768fcb5

Browse files
Fixed pagination bug
Signed-off-by: sougata-progress <sougatab@progress.com>
1 parent f0ed7f0 commit 768fcb5

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

  • components/builder-api/src/server/resources

components/builder-api/src/server/resources/pkgs.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,11 @@ pub fn postprocess_package_list<T: Serialize>(_req: &HttpRequest,
817817
count: i64,
818818
pagination: &Query<Pagination>)
819819
-> HttpResponse {
820-
let (start, _) = helpers::extract_pagination(pagination);
820+
let (page, per_page) = helpers::extract_pagination_in_pages(pagination);
821+
let safe_page = page.max(1);
822+
let start = safe_page.checked_sub(1)
823+
.and_then(|p| p.checked_mul(per_page))
824+
.unwrap_or_default();
821825
let pkg_count = packages.len() as isize;
822826
let stop = match pkg_count {
823827
0 => count,
@@ -848,8 +852,11 @@ pub fn postprocess_extended_package_list(_req: &HttpRequest,
848852
let start = if pagination.range < 0 {
849853
0
850854
} else {
851-
let (start, _) = helpers::extract_pagination(pagination);
852-
start
855+
let (page, per_page) = helpers::extract_pagination_in_pages(pagination);
856+
let safe_page = page.max(1);
857+
safe_page.checked_sub(1)
858+
.and_then(|p| p.checked_mul(per_page))
859+
.unwrap_or_default()
853860
};
854861
let pkg_count = packages.len() as isize;
855862
let stop = match pkg_count {

0 commit comments

Comments
 (0)