Add PaginationRequest DTO for /requests endpoint #109

Merged
hitanshu merged 1 commits from hitanshu/CFTunnels:feature/approve-reject-request into test 2026-02-15 15:33:31 +00:00
2 changed files with 22 additions and 1 deletions

View File

@ -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<Map<String,Object>> 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<Request> requests = mappingRequestService.getAllRequests(status, pageable);
Map<String, Object> jsonResponse = new HashMap<>();
jsonResponse.put("status", "success");

View File

@ -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"};
}