From 17c22e87b503324d6f90493509ace6bbd347b4f9 Mon Sep 17 00:00:00 2001 From: bouanani-soufiane Date: Mon, 11 Nov 2024 03:01:47 +0100 Subject: [PATCH] refactor(validation): use EntityExists to validate breeder [PIG-64] --- .../piegon/application/dto/request/LoftRequestDTO.java | 4 ++++ .../application/dto/request/PigeonRequestDTO.java | 2 +- .../domain/service/impl/DefaultLoftDomainService.java | 10 ---------- .../application/service/UserApplicationService.java | 4 ---- .../domain/service/impl/DefaultUserDomainService.java | 6 +----- 5 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/LoftRequestDTO.java b/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/LoftRequestDTO.java index 8762dc4..0698a15 100644 --- a/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/LoftRequestDTO.java +++ b/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/LoftRequestDTO.java @@ -1,8 +1,12 @@ package ma.yc.PigeonSkyRace.piegon.application.dto.request; import jakarta.validation.constraints.NotNull; +import ma.yc.PigeonSkyRace.common.application.validation.EntityExists; +import ma.yc.PigeonSkyRace.user.domain.model.aggregate.User; public record LoftRequestDTO( @NotNull CoordinateRequestDTO coordinate, + + @EntityExists(entity = User.class, message = "The specified breeder does not exist") @NotNull String userId) { } \ No newline at end of file diff --git a/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/PigeonRequestDTO.java b/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/PigeonRequestDTO.java index edfc125..62da3be 100644 --- a/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/PigeonRequestDTO.java +++ b/src/main/java/ma/yc/PigeonSkyRace/piegon/application/dto/request/PigeonRequestDTO.java @@ -17,6 +17,6 @@ public record PigeonRequestDTO( @NotBlank String color, - @EntityExists(entity = Loft.class , message = "The specified loft does not exist") + @EntityExists(entity = Loft.class, message = "The specified loft does not exist") @NotBlank String loftId) { } diff --git a/src/main/java/ma/yc/PigeonSkyRace/piegon/domain/service/impl/DefaultLoftDomainService.java b/src/main/java/ma/yc/PigeonSkyRace/piegon/domain/service/impl/DefaultLoftDomainService.java index b98f58f..4e9e6f5 100644 --- a/src/main/java/ma/yc/PigeonSkyRace/piegon/domain/service/impl/DefaultLoftDomainService.java +++ b/src/main/java/ma/yc/PigeonSkyRace/piegon/domain/service/impl/DefaultLoftDomainService.java @@ -13,9 +13,6 @@ import ma.yc.PigeonSkyRace.piegon.domain.service.LoftDomainService; import ma.yc.PigeonSkyRace.piegon.domain.service.LoftNameGenerator; import ma.yc.PigeonSkyRace.piegon.infrastructure.repository.LoftRepository; -import ma.yc.PigeonSkyRace.user.application.service.UserApplicationService; -import ma.yc.PigeonSkyRace.user.domain.exception.InvalidUserException; -import ma.yc.PigeonSkyRace.user.domain.model.valueobject.UserId; import org.springframework.stereotype.Service; import java.util.List; @@ -28,7 +25,6 @@ public class DefaultLoftDomainService implements LoftDomainService, LoftApplicat private final LoftRepository repository; private final LoftMapper mapper; private final LoftNameGenerator loftNameGenerator; - private final UserApplicationService userApplicationService; @Override public boolean existsById ( LoftId id ) { @@ -47,11 +43,6 @@ public List findAll () { @Override public LoftResponseDTO create ( LoftRequestDTO dto ) { - try { - userApplicationService.getById(UserId.fromString(dto.userId())); - } catch (NotFoundException e) { - throw new InvalidUserException("User with ID " + dto.userId() + " does not exist", e); - } Loft loft = mapper.toEntity(dto); String uniqueName = generateUniqueLoftName(); @@ -65,7 +56,6 @@ public Coordinate geLoftCoordinate ( LoftId loftId ) { return repository.getCoordinateById(loftId); } - private String generateUniqueLoftName () { String uniqueName; do { diff --git a/src/main/java/ma/yc/PigeonSkyRace/user/application/service/UserApplicationService.java b/src/main/java/ma/yc/PigeonSkyRace/user/application/service/UserApplicationService.java index da23b70..f5f8aec 100644 --- a/src/main/java/ma/yc/PigeonSkyRace/user/application/service/UserApplicationService.java +++ b/src/main/java/ma/yc/PigeonSkyRace/user/application/service/UserApplicationService.java @@ -1,8 +1,4 @@ package ma.yc.PigeonSkyRace.user.application.service; -import ma.yc.PigeonSkyRace.user.application.dto.response.AuthResponseDTO; -import ma.yc.PigeonSkyRace.user.domain.model.valueobject.UserId; - public interface UserApplicationService { - AuthResponseDTO getById ( UserId id ); } diff --git a/src/main/java/ma/yc/PigeonSkyRace/user/domain/service/impl/DefaultUserDomainService.java b/src/main/java/ma/yc/PigeonSkyRace/user/domain/service/impl/DefaultUserDomainService.java index 44b5872..d46d5d9 100644 --- a/src/main/java/ma/yc/PigeonSkyRace/user/domain/service/impl/DefaultUserDomainService.java +++ b/src/main/java/ma/yc/PigeonSkyRace/user/domain/service/impl/DefaultUserDomainService.java @@ -23,7 +23,7 @@ @Service @RequiredArgsConstructor @Slf4j -public class DefaultUserDomainService implements UserDomainService, UserApplicationService { +public class DefaultUserDomainService implements UserDomainService { private final UserRepository repository; private final UserMapper mapper; @@ -79,8 +79,4 @@ private void validateNewUser ( RegisterRequestDTO registerRequest ) { } } - @Override - public AuthResponseDTO getById ( UserId id ) { - return mapper.toDto(repository.findById(id).orElseThrow(() -> new NotFoundException("User", id))); - } }