From ef63cea89dcda58951219936c10175dd38ebcd20 Mon Sep 17 00:00:00 2001 From: AshrakatAbdELSattar Date: Thu, 11 Aug 2022 12:44:44 +0200 Subject: [PATCH 1/4] #107 validate position name --- .../com/example/demo/repository/PositionRepository.java | 6 ++++++ .../java/com/example/demo/rest/handler/PositionHandler.java | 6 ++++++ .../main/java/com/example/demo/service/PositionService.java | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/back-end/src/main/java/com/example/demo/repository/PositionRepository.java b/back-end/src/main/java/com/example/demo/repository/PositionRepository.java index 6dcc8e70..60f77e8b 100644 --- a/back-end/src/main/java/com/example/demo/repository/PositionRepository.java +++ b/back-end/src/main/java/com/example/demo/repository/PositionRepository.java @@ -2,7 +2,13 @@ import com.example.demo.entity.Position; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.Optional; public interface PositionRepository extends JpaRepository { + @Query(value = "SELECT p FROM Position p WHERE p.name = :name") + Optional findByName(@Param("name") String name); } diff --git a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java index 53464043..bbbf3484 100644 --- a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java +++ b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java @@ -14,11 +14,13 @@ import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import java.net.URI; import java.util.List; +import java.util.Optional; @Component @AllArgsConstructor @@ -38,6 +40,10 @@ public ResponseEntity getAll(Integer page, Integer size) { } public ResponseEntity save(PositionDto dto) { + Optional positionByName = positionService.getByName(dto.getName()); + if (positionByName.isPresent()) { + return ResponseEntity.status(HttpStatus.CONFLICT).build(); + } Position position = positionMapper.toEntity(dto); positionService.save(position); PositionDto positionDto = positionMapper.toDto(position); diff --git a/back-end/src/main/java/com/example/demo/service/PositionService.java b/back-end/src/main/java/com/example/demo/service/PositionService.java index 1e74f78b..e53a4f81 100644 --- a/back-end/src/main/java/com/example/demo/service/PositionService.java +++ b/back-end/src/main/java/com/example/demo/service/PositionService.java @@ -39,4 +39,8 @@ public void delete(Position position) { public Optional getById(Integer id) { return positionRepository.findById(id); } + + public Optional getByName(String name) { + return positionRepository.findByName(name); + } } \ No newline at end of file From ddd461cfb9cc14ca21daab62d0dbd1f2f16e9d81 Mon Sep 17 00:00:00 2001 From: AshrakatAbdELSattar Date: Tue, 16 Aug 2022 11:35:45 +0200 Subject: [PATCH 2/4] #107 validate position name in update api --- .../java/com/example/demo/rest/handler/PositionHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java index bbbf3484..3f310eb7 100644 --- a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java +++ b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java @@ -53,6 +53,10 @@ public ResponseEntity save(PositionDto dto) { public ResponseEntity update(Integer id, PositionDto dto){ Position position = positionService.getById(id). orElseThrow(() -> new ResourceNotFoundException(Position.class.getSimpleName(), id)); + Optional positionByName = positionService.getByName(dto.getName()); + if (positionByName.isPresent() && positionByName.get().getId().equals(id)) { + return ResponseEntity.status(HttpStatus.CONFLICT).build(); + } positionMapper.updateEntityFromDto(dto, position); positionService.update(position); return ResponseEntity.ok().build(); From ab4e5c90e5ce32c299b50f6f9d5f8dd572e2f793 Mon Sep 17 00:00:00 2001 From: AshrakatAbdELSattar Date: Tue, 16 Aug 2022 11:41:17 +0200 Subject: [PATCH 3/4] #107 validate position name update naming --- .../com/example/demo/rest/handler/PositionHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java index 3f310eb7..9cb4c8cf 100644 --- a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java +++ b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java @@ -40,8 +40,8 @@ public ResponseEntity getAll(Integer page, Integer size) { } public ResponseEntity save(PositionDto dto) { - Optional positionByName = positionService.getByName(dto.getName()); - if (positionByName.isPresent()) { + Optional existingPositionName = positionService.getByName(dto.getName()); + if (existingPositionName.isPresent()) { return ResponseEntity.status(HttpStatus.CONFLICT).build(); } Position position = positionMapper.toEntity(dto); @@ -53,8 +53,8 @@ public ResponseEntity save(PositionDto dto) { public ResponseEntity update(Integer id, PositionDto dto){ Position position = positionService.getById(id). orElseThrow(() -> new ResourceNotFoundException(Position.class.getSimpleName(), id)); - Optional positionByName = positionService.getByName(dto.getName()); - if (positionByName.isPresent() && positionByName.get().getId().equals(id)) { + Optional existingPositionName = positionService.getByName(dto.getName()); + if (existingPositionName.isPresent() && existingPositionName.get().getId().equals(id)) { return ResponseEntity.status(HttpStatus.CONFLICT).build(); } positionMapper.updateEntityFromDto(dto, position); From 1f081a4eb74c79deca2d4e234117a6b375ed7d7f Mon Sep 17 00:00:00 2001 From: AshrakatAbdELSattar Date: Wed, 17 Aug 2022 16:27:54 +0200 Subject: [PATCH 4/4] #107 validate position name update naming --- .../com/example/demo/rest/handler/PositionHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java index 9cb4c8cf..eeb5e30e 100644 --- a/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java +++ b/back-end/src/main/java/com/example/demo/rest/handler/PositionHandler.java @@ -40,8 +40,8 @@ public ResponseEntity getAll(Integer page, Integer size) { } public ResponseEntity save(PositionDto dto) { - Optional existingPositionName = positionService.getByName(dto.getName()); - if (existingPositionName.isPresent()) { + Optional existingName = positionService.getByName(dto.getName()); + if (existingName.isPresent()) { return ResponseEntity.status(HttpStatus.CONFLICT).build(); } Position position = positionMapper.toEntity(dto); @@ -53,8 +53,8 @@ public ResponseEntity save(PositionDto dto) { public ResponseEntity update(Integer id, PositionDto dto){ Position position = positionService.getById(id). orElseThrow(() -> new ResourceNotFoundException(Position.class.getSimpleName(), id)); - Optional existingPositionName = positionService.getByName(dto.getName()); - if (existingPositionName.isPresent() && existingPositionName.get().getId().equals(id)) { + Optional existingName = positionService.getByName(dto.getName()); + if (existingName.isPresent() && existingName.get().getId().equals(id)) { return ResponseEntity.status(HttpStatus.CONFLICT).build(); } positionMapper.updateEntityFromDto(dto, position);