Mam endpoint testowy, który ma zwracać z tabeli wszystkich handlowców - zwraca wszystkie rekordy z tablicy. Działa ok, dopóki coś w tablicy jest. W momencie kiedy tablica jest pusta zwraca mi 401. Chcę, żeby zwracał 200 i pustą tablicę. Jak to zrobić? Dzięki. Gdzie może być problem, jak to ugryźć?
Używam: SpringBoot, Keycloak. Bazą jest postgres, ORM - hibernate. REST
Kontroler:
@GetMapping
@RolesAllowed({ADMIN_ROLE, USER_ROLE})
public ResponseEntity<ListResponse<AccountDto>> getSales(
HttpServletRequest request,
@RequestParam(PAGE_REQUEST_PARAM_NAME) Integer page,
@RequestParam(PAGE_SIZE_REQUEST_PARAM_NAME) Integer pageSize) throws Exception {
SecurityGroupContext securityGroupContext = (SecurityGroupContext)request.getAttribute(SECURITY_GROUP_CONTEXT);
SearchSaleDto dto = SearchSaleDto
.builder()
.page(page)
.pageSize(pageSize)
.phrase(search)
.isAdmin(securityGroupContext.isAdmin())
.authGroups(securityGroupContext.getContextList())
.build();
return ok(saleService.getSales(dto)
);
Wyciąganie recordów:
public ListResponse<AccountDto> getSales(SearchSaleDto dto) throws Exception {
validatePaging(dto.getPage(), dto.getPageSize());
int internalPage = dto.getPage() - 1;
Page<Sale> salePage = saleRepository
.findSales(PageRequest.of(internalPage, dto.getPageSize()), dto);
List<AccountDto> accounts = salePage
.stream()
.map(saleConverter::toDto)
.collect(toList());
Long total = salePage.getTotalElements();
ResponseMetadata metadata = prepareMetadata(dto.getPage(), dto.getPageSize(), internalPage, total);
return new ListResponse<>(accounts, metadata);
}