diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java index f260b24903294bd916a79e03ac0acd919149d95c..b305d74c6f20d73bbb9df83d02e6064949eefaa4 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplane/AirplaneFacade.java @@ -26,5 +26,5 @@ public interface AirplaneFacade<K> { void deleteAirplaneTypeAssignment(Long airplaneId, Long airplaneTypeId); - AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto); + AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest); } 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 2d56d856c27af5c3b2b9f57f203a167ba968aad4..8aa3d8c26d7f2e974e75b095d48b90d51c5e6f08 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 @@ -1,14 +1,11 @@ package cz.muni.fi.pa165.core.facade.airplane; -import cz.muni.fi.pa165.core.data.domain.Airplane; import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException; +import cz.muni.fi.pa165.core.mapper.AirplaneMapper; 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; -import org.modelmapper.ModelMapper; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -19,33 +16,35 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { private final AirplaneService airplaneService; private final AirplaneTypeService airplaneTypeService; - private final ModelMapper modelMapper; + private final AirplaneMapper airplaneMapper; - @Autowired - public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) { + public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService, + AirplaneMapper airplaneMapper) { this.airplaneService = airplaneService; this.airplaneTypeService = airplaneTypeService; - this.modelMapper = modelMapper; + this.airplaneMapper = airplaneMapper; } @Override public AirplaneDto save(NewAirplaneDtoRequest newAirplaneDtoRequest) { - var entityToSave = modelMapper.map(newAirplaneDtoRequest, Airplane.class); + var entityToSave = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest); var savedEntity = airplaneService.save(entityToSave); - return modelMapper.map(savedEntity, AirplaneDto.class); + return airplaneMapper.toDto(savedEntity); } @Override public Optional<AirplaneDto> findById(Long id) { - var foundEntity = airplaneService.findById(id); - return foundEntity.map(e -> modelMapper.map(e, AirplaneDto.class)); + var foundEntity = airplaneService.findById(id) + .orElseThrow(() -> new ResourceNotFoundException("Not Found.")); + + return Optional.ofNullable(airplaneMapper.toDto(foundEntity)); } @Override public List<AirplaneDto> findAll() { var entities = airplaneService.findAll(); return entities.stream() - .map(entity -> modelMapper.map(entity, AirplaneDto.class)) + .map(airplaneMapper::toDto) .toList(); } @@ -74,7 +73,7 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { airplaneEntity.setType(airplaneTypeEntity); airplaneService.save(airplaneEntity); - return mapToDtoWithMember(airplaneEntity); + return airplaneMapper.toDto(airplaneEntity); } @Override @@ -89,17 +88,10 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { } @Override - public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto) { - var newAirplaneEntity = modelMapper.map(newAirplaneDto, Airplane.class); + public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest) { + var newAirplaneEntity = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest); - return modelMapper.map(airplaneService.update(id, newAirplaneEntity), AirplaneDto.class); + return airplaneMapper.toDto(newAirplaneEntity); } - private AirplaneDto mapToDtoWithMember(Airplane airplane) { - var airplaneTypeDto = modelMapper.map(airplane.getType(), AirplaneTypeDto.class); - var airplaneDto = modelMapper.map(airplane, AirplaneDto.class); - airplaneDto.setType(airplaneTypeDto); - - return airplaneDto; - } } diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java index abf14a78e11c43462f47742efde7c939b79b7dfc..2f01c4dcd2a3caa0ecf5dff20b9558faadaab375 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacade.java @@ -22,5 +22,5 @@ public interface AirplaneTypeFacade<K> { void deleteAll(); - AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDto); + AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest); } \ No newline at end of file diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java index 27b36fd69aeae4a95cc27e74f5bbb37b5621315d..7bc0fff5c999d7797c1eea6033835bba1de488ff 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/airplanetype/AirplaneTypeFacadeImpl.java @@ -1,12 +1,10 @@ package cz.muni.fi.pa165.core.facade.airplanetype; -import cz.muni.fi.pa165.core.data.domain.AirplaneType; import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException; +import cz.muni.fi.pa165.core.mapper.AirplaneTypeMapper; import cz.muni.fi.pa165.core.model.AirplaneTypeDto; -import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest; import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest; import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService; -import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,32 +15,34 @@ import java.util.Optional; public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> { private final AirplaneTypeService airplaneTypeService; - private final ModelMapper modelMapper; + private final AirplaneTypeMapper airplaneTypeMapper; @Autowired - public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) { + public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, AirplaneTypeMapper airplaneTypeMapper) { this.airplaneTypeService = airplaneTypeService; - this.modelMapper = modelMapper; + this.airplaneTypeMapper = airplaneTypeMapper; } @Override public AirplaneTypeDto save(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) { - var entityToSave = modelMapper.map(newAirplaneTypeDtoRequest, AirplaneType.class); + var entityToSave = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest); var savedEntity = airplaneTypeService.save(entityToSave); - return modelMapper.map(savedEntity, AirplaneTypeDto.class); + return airplaneTypeMapper.toDto(savedEntity); } @Override public Optional<AirplaneTypeDto> findById(Long id) { - var foundEntity = airplaneTypeService.findById(id); - return foundEntity.map(e -> modelMapper.map(e, AirplaneTypeDto.class)); + var foundEntity = airplaneTypeService.findById(id) + .orElseThrow(() -> new ResourceNotFoundException("Not Found.")); + + return Optional.ofNullable(airplaneTypeMapper.toDto(foundEntity)); } @Override public List<AirplaneTypeDto> findAll() { var entities = airplaneTypeService.findAll(); return entities.stream() - .map(entity -> modelMapper.map(entity, AirplaneTypeDto.class)) + .map(airplaneTypeMapper::toDto) .toList(); } @@ -57,10 +57,10 @@ public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> { } @Override - public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDto) { - var newAirplaneTypeEntity = modelMapper.map(newAirplaneTypeDto, AirplaneType.class); + public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) { + var newAirplaneTypeEntity = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest); - return modelMapper.map(airplaneTypeService.update(id, newAirplaneTypeEntity), AirplaneTypeDto.class); + return airplaneTypeMapper.toDto(newAirplaneTypeEntity); } } diff --git a/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java b/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java index 4bff4f36bf5e16437814f2d0f0fe0da4576769b9..a85902b871bc80d50fae6a3b2206b8e62b97e548 100644 --- a/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/facade/flight/FlightFacadeImpl.java @@ -1,8 +1,11 @@ package cz.muni.fi.pa165.core.facade.flight; import cz.muni.fi.pa165.core.data.domain.Flight; +import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException; +import cz.muni.fi.pa165.core.mapper.FlightMapper; import cz.muni.fi.pa165.core.model.FlightDto; import cz.muni.fi.pa165.core.model.NewFlightDtoRequest; +import cz.muni.fi.pa165.core.model.StewardDto; import cz.muni.fi.pa165.core.service.flight.FlightService; import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -16,11 +19,13 @@ public class FlightFacadeImpl implements FlightFacade<Long> { private final FlightService flightService; private final ModelMapper modelMapper; + private final FlightMapper flightMapper; @Autowired - public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper) { + public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper, FlightMapper flightMapper) { this.flightService = flightService; this.modelMapper = modelMapper; + this.flightMapper = flightMapper; } @Override @@ -32,8 +37,18 @@ public class FlightFacadeImpl implements FlightFacade<Long> { @Override public Optional<FlightDto> findById(Long id) { - var foundEntity = flightService.findById(id); - return foundEntity.map(e -> modelMapper.map(e, FlightDto.class)); + var foundFlightEntity = flightService.findById(id) + .orElseThrow(() -> new ResourceNotFoundException("Not Found.")); + + return Optional.ofNullable(flightMapper.toDto(foundFlightEntity)); + +// var flightDto = modelMapper.map(foundFlightEntity, FlightDto.class); +// +// for (var flightSteward: foundFlightEntity.getFlightStewards()) { +// flightDto.addStewardsItem(modelMapper.map(flightSteward.getSteward(), StewardDto.class)); +// } +// +// return Optional.ofNullable(flightDto); } @Override diff --git a/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..a485225311f9246e3c5ded5f217b3264032073a5 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneMapper.java @@ -0,0 +1,16 @@ +package cz.muni.fi.pa165.core.mapper; + +import cz.muni.fi.pa165.core.data.domain.Airplane; +import cz.muni.fi.pa165.core.model.AirplaneDto; +import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring") +public interface AirplaneMapper { + + Airplane toEntity(AirplaneDto airplaneDto); + + Airplane toEntityFromNewRequest(NewAirplaneDtoRequest newAirplaneDtoRequest); + + AirplaneDto toDto(Airplane airplane); +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..1962931f0196f6c68ff300d9886935f51ca14e53 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/mapper/AirplaneTypeMapper.java @@ -0,0 +1,16 @@ +package cz.muni.fi.pa165.core.mapper; + +import cz.muni.fi.pa165.core.data.domain.AirplaneType; +import cz.muni.fi.pa165.core.model.AirplaneTypeDto; +import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring") +public interface AirplaneTypeMapper { + + AirplaneType toEntity(AirplaneTypeDto airplaneTypeDto); + + AirplaneType toEntityFromNewRequest(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest); + + AirplaneTypeDto toDto(AirplaneType airplaneType); +}