From 7e3882febf201121ef7c756ecd87d3b4362f7514 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sun, 15 Feb 2026 20:51:52 +0530 Subject: [PATCH] Add PaginationRequest DTO for /requests endpoint --- .../CFTunnels/Controllers/TunnelController.java | 9 ++++++++- .../CFTunnels/Models/PaginationRequest.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Models/PaginationRequest.java diff --git a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java index c13e062..a805b96 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java @@ -10,6 +10,7 @@ import com.hithomelabs.CFTunnels.Entity.User; import com.hithomelabs.CFTunnels.Headers.AuthKeyEmailHeader; import com.hithomelabs.CFTunnels.Models.Config; import com.hithomelabs.CFTunnels.Models.Ingress; +import com.hithomelabs.CFTunnels.Models.PaginationRequest; import com.hithomelabs.CFTunnels.Models.TunnelResponse; import com.hithomelabs.CFTunnels.Models.TunnelsResponse; import com.hithomelabs.CFTunnels.Repositories.UserRepository; @@ -22,7 +23,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.dao.DataAccessException; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.http.*; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.GrantedAuthority; @@ -111,8 +114,12 @@ public class TunnelController implements ErrorController { @GetMapping("/requests") public ResponseEntity> getAllRequests( @RequestParam(required = false) Request.RequestStatus status, - Pageable pageable) { + @ModelAttribute PaginationRequest paginationRequest) { try { + Sort sort = paginationRequest.getSort() != null && paginationRequest.getSort().length > 0 + ? Sort.by(paginationRequest.getSort()) + : Sort.by("id"); + Pageable pageable = PageRequest.of(paginationRequest.getPage(), paginationRequest.getSize(), sort); Page requests = mappingRequestService.getAllRequests(status, pageable); Map jsonResponse = new HashMap<>(); jsonResponse.put("status", "success"); diff --git a/src/main/java/com/hithomelabs/CFTunnels/Models/PaginationRequest.java b/src/main/java/com/hithomelabs/CFTunnels/Models/PaginationRequest.java new file mode 100644 index 0000000..da16aa2 --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Models/PaginationRequest.java @@ -0,0 +1,14 @@ +package com.hithomelabs.CFTunnels.Models; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PaginationRequest { + private int page = 0; + private int size = 10; + private String[] sort = {"id"}; +}