SI-731 Distribution Group Members + postalcodes
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/DistributionGroupMemberMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/DistributionGroupMemberMapper.java
index 74d65bb..ffcecce 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/DistributionGroupMemberMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/DistributionGroupMemberMapper.java
@@ -14,13 +14,21 @@
*/
package org.eclipse.openk.gridfailureinformation.mapper;
+import com.google.common.collect.Lists;
import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroupMember;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionGroupMemberDto;
+import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
+import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DistributionGroupMemberMapper {
@Mappings({
@@ -29,6 +37,19 @@
})
DistributionGroupMemberDto toDistributionGroupMemberDto(TblDistributionGroupMember tblDistributionGroupMember);
+ @AfterMapping
+ default void mapPostcodesToList(TblDistributionGroupMember srcTbl, @MappingTarget DistributionGroupMemberDto targetDto) {
+ List<String> result =
+ Lists.newArrayList(
+ Optional.ofNullable(srcTbl.getPostcodes()).orElse("")
+ .split(","));
+
+ targetDto.setPostcodeList(result.stream()
+ .sorted( String::compareTo )
+ .collect(Collectors.toList())
+ );
+ }
+
@Mappings({
@Mapping(source = "distributionGroupUuid", target = "tblDistributionGroup.uuid"),
@@ -36,5 +57,17 @@
})
TblDistributionGroupMember toTblDistributionGroupMember(DistributionGroupMemberDto distributionGroupMemberDto);
+ @AfterMapping
+ default void mapPostcodesFromList(DistributionGroupMemberDto srcDto, @MappingTarget TblDistributionGroupMember targetTbl) {
+ StringBuilder sb = new StringBuilder();
+ Optional.ofNullable(srcDto.getPostcodeList()).orElse( new ArrayList<String>()).stream()
+ .sorted(String::compareTo)
+ .forEach(x -> sb.append("," + x));
+ targetTbl.setPostcodes(
+ sb.toString().replaceFirst(",", "" )
+ );
+ }
+
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblDistributionGroupMember.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblDistributionGroupMember.java
index ae040b9..ba75b13 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblDistributionGroupMember.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblDistributionGroupMember.java
@@ -16,7 +16,14 @@
import lombok.Data;
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.SequenceGenerator;
import java.util.UUID;
@Data
@@ -34,4 +41,5 @@
private TblDistributionGroup tblDistributionGroup;
private UUID contactId;
+ private String postcodes;
}
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 4269284..06044f0 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
@@ -18,6 +18,7 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
import java.util.UUID;
@Data
@@ -39,6 +40,8 @@
private String personType;
private String department;
+ private List<String> postcodeList;
+
}
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index c02bbc8..1b7dc6d 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -68,7 +68,7 @@
jwt:
tokenHeader: Authorization
- useStaticJwt: true
+ useStaticJwt: false
staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiJlMmQ2YjE3Zi1iMWUyLTQxMzUtOTM1YS0zOWRiMmFkMzE5MjYiLCJleHAiOjE1ODYwMTI1MzUsIm5iZiI6MCwiaWF0IjoxNTg2MDEyMjM1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiMzMzMmRmOWItYmYyMy00Nzg5LThmMmQtM2JhZTM2MzA4YzNkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjYxMzRmN2RhLTdlNjQtNDJjNy05NjYyLTY0ZGNhZTk1MjQ5YSIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiZ3JpZC1mYWlsdXJlLXF1YWxpZmllciIsImdyaWQtZmFpbHVyZS1jcmVhdG9yIiwiZ3JpZC1mYWlsdXJlLWFjY2VzcyIsImdyaWQtZmFpbHVyZS1hZG1pbiIsImdyaWQtZmFpbHVyZS1wdWJsaXNoZXIiXX0sInJlc291cmNlX2FjY2VzcyI6e30sIm5hbWUiOiJTdGF0aWMgSldUIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidGVzdHVzZXJfZ2ZpX3N0YXRpY2p3dCIsImdpdmVuX25hbWUiOiJTdGF0aWMiLCJmYW1pbHlfbmFtZSI6IkpXVCJ9.SWpekZHxlDNWbaaZ2fHlts00c1Xi6yIb0ZMr9f8ujSI_6LVYuHx8FTt6g9tinyVcx5gQKfrooRW28Cdq1EVuexNtTtZ7ciKk4iEo_kgqUgRvHCwO7HQl2igpoGErheYD0kj3-u4Te6NPHKtXWIEfGyl0ZQBD2c4vtaCTQAy5Ilb146G7p_IcLYaZgpJPlGG0Bf2oZ0UqTQsrXxRJkXWARDz8D4lIrN84lAbqNlPlSZDN-8xp_z6mXgWpvgeZuFoYHItJMg2cjR0SXH-ycbWVXctRNQJfTWR0acIhp_nB_Xe6JlUx2vls99EVw-WUrd0hc8Y9658HdeyktvpQLDxP2g
services:
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_x52__PLZ_AN_DISTR_GROUP_MEMBER.sql b/gfsBackendService/src/main/resources/db/migration/V0_x52__PLZ_AN_DISTR_GROUP_MEMBER.sql
new file mode 100644
index 0000000..7282219
--- /dev/null
+++ b/gfsBackendService/src/main/resources/db/migration/V0_x52__PLZ_AN_DISTR_GROUP_MEMBER.sql
@@ -0,0 +1,24 @@
+-----------------------------------------------------------------------------------
+-- *******************************************************************************
+-- * Copyright (c) 2019 Contributors to the Eclipse Foundation
+-- *
+-- * See the NOTICE file(s) distributed with this work for additional
+-- * information regarding copyright ownership.
+-- *
+-- * This program and the accompanying materials are made available under the
+-- * terms of the Eclipse Public License v. 2.0 which is available at
+-- * http://www.eclipse.org/legal/epl-2.0.
+-- *
+-- * SPDX-License-Identifier: EPL-2.0
+-- *******************************************************************************
+-----------------------------------------------------------------------------------
+
+DO $$
+ BEGIN
+ BEGIN
+ ALTER TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER ADD COLUMN POSTCODES varchar(1024);
+ EXCEPTION
+ WHEN duplicate_column THEN RAISE NOTICE 'column POSTCODES already exists in TBL_DISTRIBUTION_GROUP_MEMBER.';
+ END;
+ END;
+$$
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 09f9571..798687e 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
@@ -40,7 +40,9 @@
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.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
@@ -89,6 +91,8 @@
DistributionGroupMemberDto dto = distributionGroupMemberService.getMemberByUuid(groupMember.getTblDistributionGroup().getUuid(), UUID.randomUUID());
assertEquals(dto.getUuid(), dto.getUuid());
+ assertEquals("12345", dto.getPostcodeList().get(0));
+ assertEquals("54321", dto.getPostcodeList().get(1));
}
@Test
@@ -113,6 +117,8 @@
assertNotNull(savedDto.getUuid());
assertEquals(savedDto.getUuid(), tblDistributionGroupMember.getUuid());
+ assertEquals("12345,54321",
+ tblDistributionGroupMember.getPostcodes());
}
@Test
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 1edbdb8..d41f232 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
@@ -1261,6 +1261,7 @@
tblDistributionGroupMember.setUuid(UUID.randomUUID());
tblDistributionGroupMember.setTblDistributionGroup(mockTblDistributionGroup());
tblDistributionGroupMember.setContactId(UUID.randomUUID());
+ tblDistributionGroupMember.setPostcodes("12345,54321");
return tblDistributionGroupMember;
}
@@ -1292,6 +1293,10 @@
distributionGroupMemberDto.setDistributionGroup(mockDistributionGroupDto().getName());
distributionGroupMemberDto.setContactId(UUID.randomUUID());
distributionGroupMemberDto.setEmail("test@test.de");
+ List<String> postcodeList = new ArrayList<>();
+ postcodeList.add("12345");
+ postcodeList.add("54321");
+ distributionGroupMemberDto.setPostcodeList(postcodeList);
return distributionGroupMemberDto;
}