diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/facade/FlightFacade.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/facade/FlightFacade.java index 4f1737dba4c0d8d233864ba6cf31a08009fb9eaa..4cfb78d3830bb1a5a26ebe1af28ef7575ce3ddf0 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/facade/FlightFacade.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/facade/FlightFacade.java @@ -3,6 +3,7 @@ package cz.muni.fi.pa165.facade; import cz.muni.fi.pa165.api.flight.Flight; import cz.muni.fi.pa165.api.flight.requests.FlightRequest; +import cz.muni.fi.pa165.dao.FlightPilot; import cz.muni.fi.pa165.service.FlightService; import lombok.RequiredArgsConstructor; import org.modelmapper.ModelMapper; @@ -10,6 +11,7 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -18,8 +20,8 @@ public class FlightFacade { private final FlightService flightService; private final ModelMapper modelMapper = new ModelMapper(); - public List<Flight> getFlights(){ - var result = flightService.getAllFlights(); + public List<Flight> getFlights( int page, int size ){ + var result = flightService.getAllFlights(page, size); return result.stream().map(p -> modelMapper.map(p, cz.muni.fi.pa165.api.flight.Flight.class)).toList(); } @@ -31,7 +33,6 @@ public class FlightFacade { public Flight createFlight(FlightRequest flightRequest){ var result = flightService.createFlight( modelMapper.map(flightRequest, cz.muni.fi.pa165.dao.Flight.class) ); return modelMapper.map(result, Flight.class); - } public Flight updateFlight(UUID id, FlightRequest flightRequest){ diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/repository/FlightRepository.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/repository/FlightRepository.java index 9a92868cd8b35e565704f09791594f05ab4e32cf..9c8f80ffd4e03616823674d42f420ad3940c7c5e 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/repository/FlightRepository.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/repository/FlightRepository.java @@ -1,6 +1,8 @@ package cz.muni.fi.pa165.repository; import cz.muni.fi.pa165.dao.Flight; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @@ -9,4 +11,5 @@ import java.util.UUID; @Repository public interface FlightRepository extends JpaRepository<Flight, UUID> { + Page<Flight> findAll(Pageable pageable); } diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java index 926cd2b2d9e0e790ed9c19acf94ad40cfb69154c..d34fb1d10e03e86f5e7ea78b6066a08878a3ad87 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java @@ -5,6 +5,9 @@ import cz.muni.fi.pa165.api.flight.requests.FlightRequest; import cz.muni.fi.pa165.facade.FlightFacade; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -19,17 +22,18 @@ public class FlightController { @Autowired private final FlightFacade flightFacade; - /* @GetMapping - public ResponseEntity<List<Flight>> getAllFlights() { - List<Flight> flights = flightFacade.getFlights(); - return new ResponseEntity<>(flights, HttpStatus.OK); - } - */ + public ResponseEntity<List<Flight>> getAllFlights( + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "10") int size + ) { + List<Flight> flights = flightFacade.getFlights(page, size); - @GetMapping - public List<Flight> getAllFlights() { - return flightFacade.getFlights(); + if( flights.isEmpty() ) { + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + return new ResponseEntity<>(flights, HttpStatus.OK); } @GetMapping("/{id}") @@ -40,8 +44,6 @@ public class FlightController { // Create a new flight @PostMapping public Flight createFlight(@RequestBody FlightRequest flightRequest) { - System.out.println("Get create Flights"); - System.out.println(flightRequest); return flightFacade.createFlight(flightRequest); } diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java index 90be0f6e01d539f6b822e05a9786f8a610484973..8cd1f2db5fd3d86ec9cc154173f0c74a58ed8c47 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java @@ -7,6 +7,9 @@ import cz.muni.fi.pa165.exception.IssueReportNotFoundException; import cz.muni.fi.pa165.repository.FlightRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -14,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Optional; import java.util.UUID; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -22,8 +26,10 @@ public class FlightService { @Autowired private FlightRepository flightRepository; - public List<Flight> getAllFlights() { - return flightRepository.findAll(); + public List<Flight> getAllFlights(int page, int size) { + Pageable pageable = PageRequest.of(page, size); + Page<Flight> flightPage = flightRepository.findAll(pageable); + return flightPage.getContent().stream().collect(Collectors.toList()); } public Flight getFlight(UUID id) {