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();