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;
     }