From 12d4b858fa4d13a1e6424ace0bf55d35f45f9507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Slov=C3=ADk?= <xslovik@fi.muni.cz> Date: Wed, 5 Apr 2023 11:27:21 +0200 Subject: [PATCH] Integrating with AirplaneController --- .../facade/airplane/AirplaneFacadeImpl.java | 17 ++++++++++---- .../pa165/core/rest/AirplaneController.java | 23 ++++++++++++++----- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java index f15d8c8..b0f969d 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacadeImpl.java @@ -2,6 +2,7 @@ package cz.muni.fi.pa165.core.facade.airplane; import cz.muni.fi.pa165.core.data.domain.Airplane; import cz.muni.fi.pa165.core.model.AirplaneDto; +import cz.muni.fi.pa165.core.model.AirplaneTypeDto; import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest; import cz.muni.fi.pa165.core.service.airplane.AirplaneService; import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService; @@ -59,13 +60,19 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { @Override public AirplaneDto assignAirplaneType(Long airplaneId, Long airplaneTypeId) { - var airplaneEntity = airplaneService.findById(airplaneId); - var airplaneTypeEntity = airplaneTypeService.findById(airplaneTypeId); + var airplaneEntityOpt = airplaneService.findById(airplaneId); + var airplaneTypeEntityOpt = airplaneTypeService.findById(airplaneTypeId); - if (airplaneEntity.isPresent() && airplaneTypeEntity.isPresent()) { - airplaneEntity.get().setType(airplaneTypeEntity.get()); + if (airplaneEntityOpt.isPresent() && airplaneTypeEntityOpt.isPresent()) { + var airplaneEntity = airplaneEntityOpt.get(); + var airplaneTypeEntity = airplaneTypeEntityOpt.get(); + + airplaneEntity.setType(airplaneTypeEntity); + var airplaneTypeDto = modelMapper.map(airplaneTypeEntity, AirplaneTypeDto.class); + var airplaneDto = modelMapper.map(airplaneEntity, AirplaneDto.class); + airplaneDto.setType(airplaneTypeDto); - return modelMapper.map(airplaneEntity, AirplaneDto.class); + return airplaneDto; } return null; diff --git a/core/src/main/java/cz/muni/fi/pa165/core/rest/AirplaneController.java b/core/src/main/java/cz/muni/fi/pa165/core/rest/AirplaneController.java index 143e24e..5272433 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/rest/AirplaneController.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/rest/AirplaneController.java @@ -2,8 +2,10 @@ package cz.muni.fi.pa165.core.rest; import cz.muni.fi.pa165.core.api.AirplaneApi; import cz.muni.fi.pa165.core.api.AirplaneApiDelegate; +import cz.muni.fi.pa165.core.facade.airplane.AirplaneFacade; import cz.muni.fi.pa165.core.model.AirplaneDto; import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; @@ -12,6 +14,13 @@ import java.util.List; @RestController public class AirplaneController implements AirplaneApiDelegate { + private final AirplaneFacade<Long> airplaneFacade; + + @Autowired + public AirplaneController(AirplaneFacade<Long> airplaneFacade) { + this.airplaneFacade = airplaneFacade; + } + /** * POST /api/airplanes/{airplaneId}/airplaneTypes/{airplaneTypeId} : Assign airplane type to a airplane. * @@ -23,7 +32,7 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<AirplaneDto> assignAirplaneType(Long airplaneId, Long airplaneTypeId) { - return AirplaneApiDelegate.super.assignAirplaneType(airplaneId, airplaneTypeId); + return ResponseEntity.ok(airplaneFacade.assignAirplaneType(airplaneId, airplaneTypeId)); } /** @@ -37,7 +46,7 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<AirplaneDto> createAirplane(NewAirplaneDtoRequest newAirplaneDtoRequest) { - return AirplaneApiDelegate.super.createAirplane(newAirplaneDtoRequest); + return ResponseEntity.ok(airplaneFacade.save(newAirplaneDtoRequest)); } /** @@ -50,7 +59,8 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<Void> deleteAirplane(Long id) { - return AirplaneApiDelegate.super.deleteAirplane(id); + airplaneFacade.deleteById(id); + return null; } /** @@ -64,7 +74,8 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<Void> deleteAirplaneTypeAssignment(Long airplaneId, Long airplaneTypeId) { - return AirplaneApiDelegate.super.deleteAirplaneTypeAssignment(airplaneId, airplaneTypeId); + airplaneFacade.deleteAirplaneTypeAssignment(airplaneId, airplaneTypeId); + return null; } /** @@ -77,7 +88,7 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<AirplaneDto> getAirplaneById(Long id) { - return AirplaneApiDelegate.super.getAirplaneById(id); + return ResponseEntity.of(airplaneFacade.findById(id)); } /** @@ -89,7 +100,7 @@ public class AirplaneController implements AirplaneApiDelegate { */ @Override public ResponseEntity<List<AirplaneDto>> getAllAirplanes() { - return AirplaneApiDelegate.super.getAllAirplanes(); + return ResponseEntity.ok(airplaneFacade.findAll()); } /** -- GitLab