diff --git a/src/main/java/org/upsmf/grievance/controller/SearchTicketController.java b/src/main/java/org/upsmf/grievance/controller/SearchTicketController.java index 9f745a5c80e5a57cb8fe1a492b6266e4589b3a93..f57b910ab796a93a35193f451e9266610f0a8db2 100644 --- a/src/main/java/org/upsmf/grievance/controller/SearchTicketController.java +++ b/src/main/java/org/upsmf/grievance/controller/SearchTicketController.java @@ -5,6 +5,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.upsmf.grievance.dto.SearchRequest; import org.upsmf.grievance.model.es.Ticket; @@ -22,7 +23,7 @@ public class SearchTicketController { private SearchService searchService; @PostMapping("/getAllTickets") - public ResponseEntity<Response> search(SearchRequest searchRequest){ + public ResponseEntity<Response> search(@RequestBody SearchRequest searchRequest){ TicketResponse responseTicket = searchService.search(searchRequest); Response response = new Response(HttpStatus.OK.value(), responseTicket); return new ResponseEntity<>(response, HttpStatus.OK); diff --git a/src/main/java/org/upsmf/grievance/dto/SearchRequest.java b/src/main/java/org/upsmf/grievance/dto/SearchRequest.java index d7678f6c294fbc19abefe4dd993e53aec3c7412b..333a4c29abfb25be76d7b1e5eb6e6465dad41960 100644 --- a/src/main/java/org/upsmf/grievance/dto/SearchRequest.java +++ b/src/main/java/org/upsmf/grievance/dto/SearchRequest.java @@ -28,7 +28,7 @@ public class SearchRequest { private TicketPriority priority; - private int offset; + private int page; private int size; diff --git a/src/main/java/org/upsmf/grievance/model/reponse/TicketResponse.java b/src/main/java/org/upsmf/grievance/model/reponse/TicketResponse.java index 3cb19c90ba51dfe8d6bbbd0e3840041587d090d4..8b6a0530f22a9ce5a1dea2e488c6d8936bf1d85f 100644 --- a/src/main/java/org/upsmf/grievance/model/reponse/TicketResponse.java +++ b/src/main/java/org/upsmf/grievance/model/reponse/TicketResponse.java @@ -9,6 +9,6 @@ import java.util.List; @Builder @Data public class TicketResponse { - private List<Ticket> data; private Long count; + private List<Ticket> data; } diff --git a/src/main/java/org/upsmf/grievance/repository/es/TicketRepository.java b/src/main/java/org/upsmf/grievance/repository/es/TicketRepository.java index 8423330e6a43d2f758f1b67fc9dfaec8930d3372..a23dc619a9bbaebd450537464a871332bcb944a3 100644 --- a/src/main/java/org/upsmf/grievance/repository/es/TicketRepository.java +++ b/src/main/java/org/upsmf/grievance/repository/es/TicketRepository.java @@ -12,5 +12,4 @@ public interface TicketRepository extends ElasticsearchRepository<Ticket, String @Query("{'ticket_id': ?0}") Optional<Ticket> findOneByTicketId(long id); - } diff --git a/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java index 3439b8d5fa6b47e93ec0810fc14cb390f5709a61..4f23203b7b51f2588fdb8bee1b35977a06f5642d 100644 --- a/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java +++ b/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java @@ -1,24 +1,18 @@ package org.upsmf.grievance.service.impl; -import org.elasticsearch.index.query.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.core.ElasticsearchOperations; -import org.springframework.data.elasticsearch.core.SearchHits; -import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; -import org.springframework.data.elasticsearch.core.query.Query; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; -import org.upsmf.grievance.model.es.Feedback; -import org.upsmf.grievance.model.es.Ticket; import org.upsmf.grievance.dto.SearchRequest; +import org.upsmf.grievance.model.es.Ticket; import org.upsmf.grievance.model.reponse.TicketResponse; import org.upsmf.grievance.repository.es.TicketRepository; import org.upsmf.grievance.service.SearchService; -import java.util.Optional; - @Service public class SearchServiceImpl implements SearchService { @@ -29,7 +23,10 @@ public class SearchServiceImpl implements SearchService { @Override public TicketResponse search(SearchRequest searchRequest) { - Page<Ticket> page = esTicketRepository.findAll(Pageable.ofSize(defaultPageSize)); + //Calculate + String keyValue = searchRequest.getSort().keySet().iterator().next(); + Pageable pageable = PageRequest.of(searchRequest.getPage(), searchRequest.getSize(), Sort.Direction.valueOf(searchRequest.getSort().get(keyValue).toUpperCase()),keyValue); + Page<Ticket> page = esTicketRepository.findAll(pageable); return TicketResponse.builder().count(page.getTotalElements()).data(page.getContent()).build(); }