From 1319ceb0f37110fdc474c74c73bbb5535f3fa3c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Mach=C3=A1=C4=8Dek?= <xmachac5@fi.muni.cz> Date: Sun, 7 May 2023 22:21:10 +0200 Subject: [PATCH] fix - report facade --- .../server/facade/ReportFacadeImpl.java | 66 ++++++++++++------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java b/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java index 61e819b..4972441 100644 --- a/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java +++ b/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java @@ -5,14 +5,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cz.muni.fi.pa165.core.client.AirplaneApi; -import cz.muni.fi.pa165.core.client.FlightApi; -import cz.muni.fi.pa165.core.client.AirportApi; +import cz.muni.fi.pa165.core.client.*; import cz.muni.fi.pa165.core.client.invoker.ApiException; -import cz.muni.fi.pa165.core.client.model.AirplaneDto; -import cz.muni.fi.pa165.core.client.model.AirplaneTypeDto; -import cz.muni.fi.pa165.core.client.model.AirportDto; -import cz.muni.fi.pa165.core.client.model.FlightDto; +import cz.muni.fi.pa165.core.client.model.*; import cz.muni.fi.pa165.report.server.ReportType; import cz.muni.fi.pa165.report.server.exceptions.ResourceNotFoundException; import cz.muni.fi.pa165.report.server.service.ReportDocumentService; @@ -35,6 +30,10 @@ public class ReportFacadeImpl implements ReportFacade{ public Resource getReportAirportById(Long id){ AirportDto airport; + CityDto cityDto; + CountryDto countryDto; + CountryApi countryApi = new CountryApi(); + CityApi cityApi = new CityApi(); AirportApi airportApi = new AirportApi(); List<String> airportData = new ArrayList<>(); List<String> cityData = new ArrayList<>(); @@ -49,11 +48,13 @@ public class ReportFacadeImpl implements ReportFacade{ + airport.getLocation()); documentData.put("airport", airportData); - if(airport.getCity() != null) { - cityData.add("Airport is located in the city " + airport.getCity().getName()); + if(airport.getCityId() != null && airport.getCityId() != 0) { + cityDto = cityApi.getCityById(airport.getCityId()); + cityData.add("Airport is located in the city " + cityDto.getName()); - if (airport.getCity().getCountry() != null){ - cityData.add("Country of this city is " + airport.getCity().getCountry()); + if (cityDto.getCountryId() != null && cityDto.getCountryId() != 0){ + countryDto = countryApi.getCountryById(cityDto.getCountryId()); + cityData.add("Country of this city is " + countryDto.getName()); } } documentData.put("airportCity", cityData); @@ -69,9 +70,15 @@ public class ReportFacadeImpl implements ReportFacade{ public Resource getReportFlightById(Long id){ FlightApi flightApi = new FlightApi(); + StewardApi stewardApi = new StewardApi(); + AirplaneApi airplaneApi = new AirplaneApi(); + AirportApi airportApi = new AirportApi(); + AirplaneDto airplaneDto; + AirportDto arrivalAirportDto; + AirportDto departureAirportDto; FlightDto flight; List<String> flightData = new ArrayList<>(); - List<String> stewardsData; + List<String> stewardsData = new ArrayList<>(); List<String> airplaneData = new ArrayList<>(); List<String> airportsData = new ArrayList<>(); @@ -83,21 +90,34 @@ public class ReportFacadeImpl implements ReportFacade{ flightData.add("Departure time of flight is " + flight.getDepartureTime()); documentData.put("flight", flightData); - stewardsData = flight.getStewards().stream().map(stewardDto -> - stewardDto.getFirstName() + " " + stewardDto.getLastName()).toList(); + if( flight.getAssignedStewardIds() != null){ + flight.getAssignedStewardIds().forEach(stewardId -> + { + StewardDto stewardDto; + try { + stewardDto = stewardApi.getSteward(stewardId); + } catch (ApiException e) { + throw new ResourceNotFoundException(e); + } + stewardsData.add(stewardDto.getFirstName() + " " + stewardDto.getLastName()); + }); + } documentData.put("stewards", stewardsData); - if(flight.getAirplane() != null) { - airplaneData.add("Airplane name is " + flight.getAirplane().getName()); - airplaneData.add("Airplane capacity is " + flight.getAirplane().getCapacity()); + if(flight.getAirplaneId() != null && flight.getAirplaneId() != 0) { + airplaneDto = airplaneApi.getAirplaneById(flight.getAirplaneId()); + airplaneData.add("Airplane name is " + airplaneDto.getName()); + airplaneData.add("Airplane capacity is " + airplaneDto.getCapacity()); } documentData.put("airplane", airplaneData); - if (flight.getArrivalAirport() != null) { - airportsData.add("Arrival airport is " + flight.getArrivalAirport().getName()); + if (flight.getArrivalAirportId() != null && flight.getArrivalAirportId() != 0) { + arrivalAirportDto = airportApi.getAirportById(flight.getArrivalAirportId()); + airportsData.add("Arrival airport is " + arrivalAirportDto.getName()); } - if (flight.getDepartureAirport() != null) { - airportsData.add("Departure airport is " + flight.getDepartureAirport().getName()); + if (flight.getDepartureAirportId() != null && flight.getDepartureAirportId() != 0) { + departureAirportDto = airportApi.getAirportById(flight.getDepartureAirportId()); + airportsData.add("Departure airport is " + departureAirportDto.getName()); } documentData.put("airports", airportsData); @@ -111,6 +131,8 @@ public class ReportFacadeImpl implements ReportFacade{ public Resource getReportAirplaneById(Long id){ AirplaneApi airplaneApi = new AirplaneApi(); + AirplaneTypeApi airplaneTypeApi = new AirplaneTypeApi(); + AirplaneTypeDto airplaneTypeDto; AirplaneDto airplane; List<String> airplaneData = new ArrayList<>(); List<String> airplaneTypeData = new ArrayList<>(); @@ -123,7 +145,7 @@ public class ReportFacadeImpl implements ReportFacade{ airplaneData.add("Airplane capacity: " + airplane.getCapacity()); documentData.put("airplane", airplaneData); - AirplaneTypeDto airplaneTypeDto = airplane.getType(); + airplaneTypeDto = airplaneTypeApi.getAirplaneTypeById(airplane.getTypeId()); airplaneTypeData.add("Airplane type name: " + airplaneTypeDto.getName()); documentData.put("airplaneType", airplaneTypeData); -- GitLab