Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into DEVELOP
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ContactController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ContactController.java
index 6668628..d5df862 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ContactController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ContactController.java
@@ -48,10 +48,9 @@
@GetMapping
public Page<VwDetailedContact> findContacts(
@RequestParam( "searchText" ) Optional<String> searchText,
- @RequestParam( "moduleName") Optional<String> moduleName,
@PageableDefault( sort = {"name"}, size = 500, direction = ASC) Pageable pageable) {
- return contactService.findContacts(searchText, moduleName, pageable);
+ return contactService.findContacts(searchText, pageable);
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
index c5ad8b9..dae2ea1 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
@@ -39,4 +39,7 @@
@Query("select count(*) from TblDistributionGroupMember a where a.tblDistributionGroup.id=:groupId and a.contactId=:contactId and uuid <>:memberUuid")
Long countByDistributionGroupIdAndContactIdAndIsNotSame( @Param("groupId") Long groupId, @Param("contactId") UUID contactId, @Param("memberUuid") UUID memberUuid);
+ @Query("select count(*) from TblDistributionGroupMember a where a.tblDistributionGroup.id=:groupId and a.contactId=:contactId")
+ Long countByDistributionGroupIdAndContactId( @Param("groupId") Long groupId, @Param("contactId") UUID contactId);
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ContactService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ContactService.java
index 2ffbc6d..a4c6441 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ContactService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ContactService.java
@@ -17,6 +17,7 @@
import org.eclipse.openk.gridfailureinformation.api.ContactApi;
import org.eclipse.openk.gridfailureinformation.api.dto.VwDetailedContact;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -30,14 +31,22 @@
@Autowired
private ContactApi contactApi;
- public Page<VwDetailedContact> findContacts(Optional<String> searchText, Optional<String> moduleName, Pageable pageable) {
+ @Value("${services.contacts.useModuleNameForFilter}")
+ private Boolean useModuleName;
+
+ @Value("${services.contacts.moduleName}")
+ private String contactModuleName;
+
+ public Page<VwDetailedContact> findContacts(Optional<String> searchText, Pageable pageable) {
String jwt = (String) SecurityContextHolder.getContext().getAuthentication().getDetails();
String st = searchText.orElse(null);
- String mn = moduleName.orElse(null);
+ String moduleName = null;
- return contactApi.findContacts(st, mn, pageable, jwt );
+ if (useModuleName && !contactModuleName.isEmpty()) moduleName = contactModuleName;
+
+ return contactApi.findContacts(st, moduleName, pageable, jwt );
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupMemberService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupMemberService.java
index 166752a..2955150 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupMemberService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupMemberService.java
@@ -102,11 +102,14 @@
distributionGroupMemberToSave.setUuid(UUID.randomUUID());
distributionGroupMemberToSave.setTblDistributionGroup(tblDistributionGroup);
+ if ( !checkUniqueContactForGroupMemberForInsert(tblDistributionGroup.getId(), distributionGroupMemberToSave.getContactId())) {
+ throw new OperationDeniedException(OperationType.INSERT, "distribution.group.member.already.existing.for.group");
+ }
+
TblDistributionGroupMember savedDistributionGroupMember = distributionGroupMemberRepository.save(distributionGroupMemberToSave);
return distributionGroupMemberMapper.toDistributionGroupMemberDto(savedDistributionGroupMember);
}
-
@Transactional
public void deleteDistributionGroupMember(UUID groupUuid, UUID memberUuid) {
TblDistributionGroup existingDistributionGroup = distributionGroupRepository.findByUuid(groupUuid)
@@ -139,6 +142,11 @@
return distributionGroupMemberMapper.toDistributionGroupMemberDto(savedMember);
}
+ private boolean checkUniqueContactForGroupMemberForInsert( Long distributionGroupId, UUID contactId){
+ Long result = distributionGroupMemberRepository.countByDistributionGroupIdAndContactId(distributionGroupId, contactId);
+ return result==0;
+ }
+
private boolean checkUniqueContactForGroupMemberForUpdate( Long distributionGroupId, UUID contactId, UUID memberUuid){
Long result = distributionGroupMemberRepository.countByDistributionGroupIdAndContactIdAndIsNotSame(distributionGroupId, contactId, memberUuid) ;
return result==0;
@@ -152,9 +160,9 @@
if( contact == null ) {
return groupMemberDto;
}
- completeDto.setFirstName(contact.getFirstName());
- completeDto.setLastName(contact.getLastName());
+ completeDto.setName(contact.getName());
completeDto.setEmail(contact.getEmail());
+ completeDto.setMainAddress(contact.getMainAddress());
List<CommunicationDto> communicationDtoList = contactApi.getContactCommunications(groupMemberDto.getContactId(), jwt);
if( communicationDtoList != null ) {
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/DistributionGroupMemberDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/DistributionGroupMemberDto.java
index 6ecf426..cf28340 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/DistributionGroupMemberDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/DistributionGroupMemberDto.java
@@ -30,10 +30,10 @@
private String distributionGroup;
private UUID contactId;
- private String firstName;
- private String lastName;
+ private String name;
private String email;
private String mobileNumber;
+ private String mainAddress;
}
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 08fcda5..b04cf92 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -46,6 +46,8 @@
name: contactService
communicationType:
mobile: Mobil
+ useModuleNameForFilter: false
+ moduleName: Störungsinformationstool
authNAuthService:
ribbon:
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index 9a3c583..c12931e 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -50,6 +50,8 @@
name: contactService
communicationType:
mobile: Mobil
+ useModuleNameForFilter: false
+ moduleName: Störungsinformationstool DEV
authNAuthService:
ribbon:
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupServiceMemberTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupServiceMemberTest.java
index b54ff87..09f9571 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupServiceMemberTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionGroupServiceMemberTest.java
@@ -16,6 +16,7 @@
import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
+import org.eclipse.openk.gridfailureinformation.exceptions.OperationDeniedException;
import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroup;
import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroupMember;
import org.eclipse.openk.gridfailureinformation.repository.DistributionGroupMemberRepository;
@@ -39,8 +40,7 @@
import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
@@ -91,7 +91,6 @@
assertEquals(dto.getUuid(), dto.getUuid());
}
-
@Test
public void shouldThrowExceptionWhenFailureNotFound() {
TblDistributionGroupMember groupMember = MockDataHelper.mockTblDistributionGroupMember();
@@ -117,6 +116,20 @@
}
@Test
+ public void shouldNotInsertMember_Exception_Member_Exists() {
+ DistributionGroupMemberDto memberDto = MockDataHelper.mockDistributionGroupMemberDto();
+ TblDistributionGroupMember tblDistributionGroupMember = MockDataHelper.mockTblDistributionGroupMember();
+
+ TblDistributionGroup tblDistributionGroup = MockDataHelper.mockTblDistributionGroup();
+
+ when(distributionGroupRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblDistributionGroup));
+ when(distributionGroupMemberRepository.countByDistributionGroupIdAndContactId(anyLong(),any(UUID.class))).thenReturn(4L);
+ when(distributionGroupMemberRepository.save(any(TblDistributionGroupMember.class))).thenReturn(tblDistributionGroupMember);
+
+ assertThrows(OperationDeniedException.class, () -> distributionGroupMemberService.insertDistributionGroupMember(UUID.randomUUID(), memberDto));
+ }
+
+ @Test
public void shouldDeleteDistributionGroupMember() {
TblDistributionGroupMember tblDistributionGroupMember = MockDataHelper.mockTblDistributionGroupMember();
TblDistributionGroup tblDistributionGroup = MockDataHelper.mockTblDistributionGroup();
@@ -155,7 +168,6 @@
when(distributionGroupRepository.findByUuid(any(UUID.class))).thenReturn(Optional.empty());
when(distributionGroupMemberRepository.save(any(TblDistributionGroupMember.class))).thenReturn(tblDistributionGroupMember);
-
when(distributionGroupMemberRepository.save(any(TblDistributionGroupMember.class)))
.then((Answer<TblDistributionGroupMember>) invocation -> {
Object[] args = invocation.getArguments();
@@ -165,5 +177,4 @@
}
-
}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
index cbf84f8..cd2d05d 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
@@ -1064,6 +1064,7 @@
public static TblDistributionGroup mockTblDistributionGroup(){
TblDistributionGroup tblDistributionGroup = new TblDistributionGroup();
+ tblDistributionGroup.setId(1L);
tblDistributionGroup.setUuid(UUID.randomUUID());
tblDistributionGroup.setName("Testverteiler - Abteilung intern");
tblDistributionGroup.setDistributionText("Liebe Kollegen blabla ...");
@@ -1074,6 +1075,7 @@
public static TblDistributionGroup mockTblDistributionGroup2(){
TblDistributionGroup tblDistributionGroup = new TblDistributionGroup();
+ tblDistributionGroup.setId(2L);
tblDistributionGroup.setUuid(UUID.randomUUID());
tblDistributionGroup.setName("Testverteiler - Gruppe intern");
tblDistributionGroup.setDistributionText("Liebste Kollegen blabla ...");