KON-14 - Kontakte-Modulzuordnung Suche, Doku, Fix für ContactPersonen/E-Mail
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/constants/Constants.java b/src/main/java/org/eclipse/openk/contactbasedata/constants/Constants.java index dd2bdcc..c62049a 100644 --- a/src/main/java/org/eclipse/openk/contactbasedata/constants/Constants.java +++ b/src/main/java/org/eclipse/openk/contactbasedata/constants/Constants.java
@@ -18,6 +18,7 @@ public static final String PERSON_TYPE_UUID_NOT_EXISTING = "personType.uuid.not.existing"; public static final String ADDRESS_TYPE_UUID_NOT_EXISTING = "addressType.uuid.not.existing"; public static final String CONTACT_UUID_NOT_EXISTING = "contact.uuid.not.existing"; + public static final String MODULE_ASSIGNMENT_UUID_NOT_EXISTING = "module.assignment.uuid.not.existing"; private Constants() { // empty Constructor for the sake of SONAR
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactController.java b/src/main/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactController.java index 3794865..5694d05 100644 --- a/src/main/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactController.java +++ b/src/main/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactController.java
@@ -52,6 +52,18 @@ return assignmentModulContactService.getAssignments(contactUuid); } + @GetMapping("/{contactUuid}/assignments/{assignmentUuid}") + @ApiOperation(value = "Lesen einer Zuordnung Kontakt:Modul") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Zuordnung nicht gefunden."), + @ApiResponse(code = 400, message = "Ungültige Anfrage."), + @ApiResponse(code = 200, message = "Zuordnung erfolgreich ermittelt.")}) + public AssignmentModulContactDto getAssignment( + @PathVariable UUID contactUuid, + @PathVariable UUID assignmentUuid) { + return assignmentModulContactService.getAssignment(contactUuid, assignmentUuid); + } + @PostMapping("/{contactUuid}/assignments") @ApiOperation(value = "Anlegen einer neuen Zuordnung Kontakt:Modul")
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactService.java index 7222e2a..bd5ce40 100644 --- a/src/main/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactService.java +++ b/src/main/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactService.java
@@ -52,6 +52,17 @@ return tblAssignmentsList.stream().map(assignmentModulContactMapper::toAssignmentModulContactDto).collect(Collectors.toList()); } + public AssignmentModulContactDto getAssignment(UUID contactUuid, UUID assignmentUuid ) { + + TblAssignmentModulContact tblAssign = assignmentModulContactRepository.findByUuid(assignmentUuid) + .orElseThrow(() -> new NotFoundException(Constants.MODULE_ASSIGNMENT_UUID_NOT_EXISTING)); + + if(!tblAssign.getTblContact().getUuid().equals(contactUuid)) { + throw new NotFoundException(Constants.CONTACT_UUID_NOT_EXISTING); + } + return assignmentModulContactMapper.toAssignmentModulContactDto(tblAssign); + } + @Transactional public AssignmentModulContactDto insertAssignment(UUID contactUuid, AssignmentModulContactDto assignmentDto) {
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java index 4309700..197b0c7 100644 --- a/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java +++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java
@@ -62,6 +62,18 @@ @Test + public void shouldReturnAssignmentForAContact() throws Exception { + AssignmentModulContactDto dto = MockDataHelper.mockAssignmentModulContactDto(); + + when(assignmentService.getAssignment(any(UUID.class), any(UUID.class))).thenReturn(dto); + + mockMvc.perform(get("/contacts/{uuid}/assignments/{uuid}", UUID.randomUUID(), UUID.randomUUID())) + .andExpect(status().is2xxSuccessful()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)); + } + + + @Test public void shouldInsertAssignment() throws Exception { AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto(); assignmentDto.setUuid(UUID.fromString("394dce82-41af-11ea-b77f-2e728ce88125"));
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java index 81ed9f9..92b9a83 100644 --- a/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java +++ b/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java
@@ -67,6 +67,24 @@ assertEquals(tblAssignmentsList.size(), 2 ); } + + @Test + public void shouldReturnSingleAssignmentsByContactUuidAndAssignUuid() { + TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact(); + when(assignmentRepository.findByUuid(any(UUID.class)) ).thenReturn(Optional.of(tblAssignment)); + + AssignmentModulContactDto assignmentDto = assignmentService.getAssignment( + tblAssignment.getTblContact().getUuid(), UUID.randomUUID()); + assertEquals(assignmentDto.getContactUuid(), tblAssignment.getTblContact().getUuid() ); + + // try it with a not matching contactUUID + assertThrows(NotFoundException.class, () -> assignmentService.getAssignment(UUID.randomUUID(), UUID.randomUUID())); + + // try it with an empty repository result + when(assignmentRepository.findByUuid(any(UUID.class))).thenReturn(Optional.empty()); + assertThrows(NotFoundException.class, () -> + assignmentService.getAssignment(assignmentDto.getContactUuid(), UUID.randomUUID())); + } @Test public void shouldUpdateAssignment() { TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();