diff --git a/src/main/java/de/muenchen/rbs/kitafindereai/adapter/kitaplaner/model/KitafinderKind.java b/src/main/java/de/muenchen/rbs/kitafindereai/adapter/kitaplaner/model/KitafinderKind.java index d94044a..93d8f48 100644 --- a/src/main/java/de/muenchen/rbs/kitafindereai/adapter/kitaplaner/model/KitafinderKind.java +++ b/src/main/java/de/muenchen/rbs/kitafindereai/adapter/kitaplaner/model/KitafinderKind.java @@ -84,5 +84,7 @@ public class KitafinderKind { private String ABW_PLZ; private String ABW_ORT; private String ABW_LAND; + private String VER_GRUPPE_ID; + private String VER_GRUPPE_AB; } diff --git a/src/main/java/de/muenchen/rbs/kitafindereai/api/KitaAppApiController.java b/src/main/java/de/muenchen/rbs/kitafindereai/api/KitaAppApiController.java index 1b9d061..77196e7 100644 --- a/src/main/java/de/muenchen/rbs/kitafindereai/api/KitaAppApiController.java +++ b/src/main/java/de/muenchen/rbs/kitafindereai/api/KitaAppApiController.java @@ -40,6 +40,8 @@ public class KitaAppApiController { @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "successful operation", content = { @Content(schema = @Schema(implementation = Institute.class)) }), + @ApiResponse(responseCode = "204", description = "no content", content = { + @Content(schema = @Schema(implementation = Void.class)) }), @ApiResponse(responseCode = "401", description = "unauthorized", content = { @Content(schema = @Schema(implementation = Void.class)) }), @ApiResponse(responseCode = "403", description = "forbidden", content = { diff --git a/src/main/java/de/muenchen/rbs/kitafindereai/config/ModelMapperConfiguration.java b/src/main/java/de/muenchen/rbs/kitafindereai/config/ModelMapperConfiguration.java index 6c9d8ad..5e82448 100644 --- a/src/main/java/de/muenchen/rbs/kitafindereai/config/ModelMapperConfiguration.java +++ b/src/main/java/de/muenchen/rbs/kitafindereai/config/ModelMapperConfiguration.java @@ -55,11 +55,15 @@ public ModelMapper modelMapper() { // map groups and add children List groups = new ArrayList<>(); export.getDatensaetze().stream().forEach(kind -> { - String groupName = kind.getVER_GRUPPE(); - Optional group = groups.stream().filter(g -> g.getName().equals(groupName)).findAny(); + String originalGroupId = kind.getVER_GRUPPE_ID(); + String groupId = (originalGroupId == null || originalGroupId.length() == 0) + ? kind.getVER_GRUPPE() + : originalGroupId; + + Optional group = groups.stream().filter(g -> g.getGroupId().equals(groupId)).findAny(); if (group.isEmpty()) { // Group is not present yet. - groups.add(new Group(groupName, groupName, + groups.add(new Group(groupId, kind.getVER_GRUPPE(), new ArrayList<>(List.of(mapper.map(kind, Child.class))))); } else { // Add to existing group diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2ebf605..cb302d0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -18,11 +18,6 @@ app: encryptor: password: 377b88361dd70f30689cecf46e73e36d salt: 2c82deb3e67b0da1 - internalApi: - # Overwrite in non-dev-environments! - authentication: - user: internalApiUser - password: be7de70f405a8cdb kitafinderAdapter: baseUrl: http://kitafinder-plan-k2.muenchen.de diff --git a/src/test/java/de/muenchen/rbs/kitafindereai/mapper/ModelMapperTest.java b/src/test/java/de/muenchen/rbs/kitafindereai/mapper/ModelMapperTest.java index ce617c9..84ca5b5 100644 --- a/src/test/java/de/muenchen/rbs/kitafindereai/mapper/ModelMapperTest.java +++ b/src/test/java/de/muenchen/rbs/kitafindereai/mapper/ModelMapperTest.java @@ -133,15 +133,22 @@ void mapsKitafinderKindList() { kind3.setKIND_NACHNAME("nachname Test 3"); kind3.setVER_GRUPPE("gruppe Test 2"); - KitafinderExport source = new KitafinderExport(0, null, null, 3, List.of(kind1, kind2, kind3)); + KitafinderKind kind4 = new KitafinderKind(); + kind4.setKITA_ID_EXTERN("KITA-ID"); + kind4.setKITA_KITANAME("KITA-NAME"); + kind4.setKIND_VORNAME("vorname Test 4"); + kind4.setKIND_NACHNAME("nachname Test 4"); + kind4.setVER_GRUPPE_ID("gruppe Test 3"); + + KitafinderExport source = new KitafinderExport(0, null, null, 4, List.of(kind1, kind2, kind3, kind4)); Institute dest = mapper.map(source, Institute.class); assertThat(dest.getInstituteId()).isEqualTo("KITA-ID"); assertThat(dest.getInstituteName()).isEqualTo("KITA-NAME"); - assertThat(dest.getGroups()).hasSize(2); + assertThat(dest.getGroups()).hasSize(3); - Optional group1 = dest.getGroups().stream().filter(g -> "gruppe Test 1".equals(g.getName())).findAny(); + Optional group1 = dest.getGroups().stream().filter(g -> "gruppe Test 1".equals(g.getGroupId())).findAny(); assertThat(group1).isNotEmpty(); assertThat(group1.get().getChildren().stream().map(k -> k.getFirstName()).toList()) .containsExactlyInAnyOrder(kind1.getKIND_VORNAME()); @@ -150,6 +157,11 @@ void mapsKitafinderKindList() { assertThat(group2).isNotEmpty(); assertThat(group2.get().getChildren().stream().map(k -> k.getFirstName()).toList()) .containsExactlyInAnyOrder(kind2.getKIND_VORNAME(), kind3.getKIND_VORNAME()); + + Optional group3 = dest.getGroups().stream().filter(g -> "gruppe Test 3".equals(g.getGroupId())).findAny(); + assertThat(group3).isNotEmpty(); + assertThat(group3.get().getChildren().stream().map(k -> k.getFirstName()).toList()) + .containsExactlyInAnyOrder(kind4.getKIND_VORNAME()); } }