Skip to content
Snippets Groups Projects
Commit e997a9f7 authored by OZGCloud's avatar OZGCloud
Browse files

Merge remote-tracking branch 'origin/OZG-5778_entry-metadata' into OZG-6735_fim_metadata

# Conflicts:
#	fim-adapter/src/main/java/de/ozgcloud/eingang/fim/AntragstellerExtractor.java
#	fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
#	fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimSchemeAdapter.java
#	fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
#	fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java
parents ab8fd942 ccb1a87c
No related branches found
No related tags found
1 merge request!2Ozg 6735 fim metadata
Showing
with 360 additions and 297 deletions
package de.ozgcloud.eingang.fim;
import de.ozgcloud.common.test.ITCase;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormHeader;
import de.ozgcloud.eingang.common.formdata.IncomingFile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import de.ozgcloud.common.test.ITCase;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormHeader;
import de.ozgcloud.eingang.common.formdata.IncomingFile;
@ITCase
@ActiveProfiles({ "itcase", "test" })
......@@ -71,8 +71,7 @@ public class FimServiceITCase {
final Map<String, Object> expected = Map.of(
"fim.S1235", Map.of("label", "Testkey", "value", "Testvalue"),
"fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2")
);
"fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2"));
assertThat(expected).isEqualTo(formData.getFormData());
}
......@@ -83,8 +82,7 @@ public class FimServiceITCase {
final Map<String, Object> expected = Map.of(
"fim.S1235", Map.of("label", "Testkey", "value", "Testvalue"),
"fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2")
);
"fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2"));
assertThat(expected).isEqualTo(formData.getFormData());
}
......@@ -105,38 +103,36 @@ public class FimServiceITCase {
"G05001480", Map.of(
"label", "identifikation.nachricht",
"value", Map.of(
"F05002750", Map.of("label", "nachrichtenUUID", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"),
"F05002751", Map.of("label", "erstellungszeitpunkt", "value", "2022-08-15T09:30:47"),
"F05002752", Map.of("label", "nachrichtentyp", "value", "fim.S17000652.17000652001004"),
"F05002753", Map.of("label", "dienstname", "value", "urn:fim:Versammlungsanzeige:1.4")
)
),
"F05002750",
Map.of("label", "nachrichtenUUID", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"),
"F05002751",
Map.of("label", "erstellungszeitpunkt", "value", "2022-08-15T09:30:47"),
"F05002752",
Map.of("label", "nachrichtentyp", "value", "fim.S17000652.17000652001004"),
"F05002753",
Map.of("label", "dienstname", "value", "urn:fim:Versammlungsanzeige:1.4"))),
"G05001481", Map.of(
"label", "Leser",
"value", Map.of(
"F05002754", Map.of("label", "Organisationsname", "value", "Celle"),
"F05002755", Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"),
"F05002756", Map.of("label", "Kategorie", "value", "Versammlungsbehörde")
)
),
"F05002755",
Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"),
"F05002756", Map.of("label", "Kategorie", "value", "Versammlungsbehörde"))),
"G05001482", Map.of(
"label", "Autor",
"value", Map.of(
"F05002754", Map.of("label", "Organisationsname", "value", "OSI-Onlinedienst Niedersachsen Versammlungsanzeige"),
"F05002755", Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"),
"F05002756", Map.of("label", "Kategorie", "value", "Engagement- und Hobbyportal")
)
)
)
),
"F05002754",
Map.of("label", "Organisationsname", "value",
"OSI-Onlinedienst Niedersachsen Versammlungsanzeige"),
"F05002755",
Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"),
"F05002756",
Map.of("label", "Kategorie", "value", "Engagement- und Hobbyportal"))))),
"F17005454", Map.of("label", "Datenschutzhinweis DSGVO", "value", "true"),
"F17005455", Map.of("label", "Zustimmung zu einem digitalen Bescheid", "value", "true"),
"F17005533", Map.of("label", "UUID", "value", "String")
)
),
"F17005533", Map.of("label", "UUID", "value", "String"))),
"F17009191", Map.of("label", "Anzeige durch Person", "value", "true"),
"F17003371", Map.of("label", "Anzeigenart", "value", "String")
);
"F17003371", Map.of("label", "Anzeigenart", "value", "String"));
assertThat(expected).isEqualTo(formData.getFormData());
}
......@@ -178,7 +174,8 @@ public class FimServiceITCase {
@Test
void shouldFallbackUnknownScheme() {
IncomingFile r1 = IncomingFile.builder().name("src/test/resources/test3/Antrag.xml").file(new File("src/test/resources/test3/Antrag.xml")).build();
IncomingFile r1 = IncomingFile.builder().name("src/test/resources/test3/Antrag.xml").file(new File("src/test/resources/test3/Antrag.xml"))
.build();
IncomingFile r2 = IncomingFile.builder().name("src/test/resources/test3/fim_xtaMetadata.xml").build();
final FormData initialFormData = FormData.builder()
.header(FormHeader.builder().channel("XTA").formEngineName("FIM").build())
......@@ -198,38 +195,31 @@ public class FimServiceITCase {
"G05001480", Map.of(
"label", "G05001480",
"value", Map.of(
"F05002750", Map.of("label", "F05002750", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"),
"F05002750",
Map.of("label", "F05002750", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"),
"F05002751", Map.of("label", "F05002751", "value", "2022-08-15T09:30:47"),
"F05002752", Map.of("label", "F05002752", "value", "fim.S17000652.17000652001004"),
"F05002753", Map.of("label", "F05002753", "value", "urn:fim:Versammlungsanzeige:1.4")
)
),
"F05002753",
Map.of("label", "F05002753", "value", "urn:fim:Versammlungsanzeige:1.4"))),
"G05001481", Map.of(
"label", "G05001481",
"value", Map.of(
"F05002754", Map.of("label", "F05002754", "value", "Celle"),
"F05002755", Map.of("label", "F05002755", "value", "vbe:010550120100"),
"F05002756", Map.of("label", "F05002756", "value", "Versammlungsbehörde")
)
),
"F05002756", Map.of("label", "F05002756", "value", "Versammlungsbehörde"))),
"G05001482", Map.of(
"label", "G05001482",
"value", Map.of(
"F05002754", Map.of("label", "F05002754", "value", "OSI-Onlinedienst Niedersachsen Versammlungsanzeige"),
"F05002754",
Map.of("label", "F05002754", "value",
"OSI-Onlinedienst Niedersachsen Versammlungsanzeige"),
"F05002755", Map.of("label", "F05002755", "value", "vbe:010550120100"),
"F05002756", Map.of("label", "F05002756", "value", "Engagement- und Hobbyportal")
)
)
)
),
"F05002756", Map.of("label", "F05002756", "value", "Engagement- und Hobbyportal"))))),
"F17005454", Map.of("label", "F17005454", "value", "true"),
"F17005455", Map.of("label", "F17005455", "value", "true"),
"F17005533", Map.of("label", "F17005533", "value", "String")
)
),
"F17005533", Map.of("label", "F17005533", "value", "String"))),
"F17009191", Map.of("label", "F17009191", "value", "true"),
"F17003371", Map.of("label", "F17003371", "value", "String")
);
"F17003371", Map.of("label", "F17003371", "value", "String"));
assertThat(expected).isEqualTo(formData.getFormData());
}
......
......@@ -6,6 +6,6 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan("de.ozgcloud.eingang.fim")
@ComponentScan("de.ozgcloud.eingang")
public class FimTestConfig {
}
package de.ozgcloud.eingang.fim;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
import de.ozgcloud.eingang.common.formdata.FormMetaDataTestFactory;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
class ZustaendigeStelleMapperTest {
@InjectMocks
private ZustaendigeStelleMapper mapper;
@Test
void shouldSetOrganisationsEinheitId() {
var parsed = mapper.parseFormData(FormDataTestFactory.createBuilder().clearZustaendigeStelles().build());
assertThat(parsed.getZustaendigeStelles()).hasSize(1).first().extracting(ZustaendigeStelle::getOrganisationseinheitenId)
.isEqualTo(FormMetaDataTestFactory.OE_ID);
// assertThat(parsed.getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo(FormMetaDataTestFactory.OE_ID);
}
@Test
void shouldWorkWithoutGivenZustaendigeStelle() {
var parsed = mapper.parseFormData(FormDataTestFactory.createBuilder().clearZustaendigeStelles().build());
assertThat(parsed.getZustaendigeStelles()).hasSize(1).first().extracting(ZustaendigeStelle::getOrganisationseinheitenId)
.isNotNull();
// assertThat(parsed.getZustaendigeStelle()).isNotNull();
}
@Test
void shouldIgnoreMalformedDestinationId() {
var oeid = mapper.extractOrganisationsEinheitId("quatsch");
assertThat(oeid).isEmpty();
}
}
......@@ -29,7 +29,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>formcycle-adapter</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
......@@ -123,7 +123,7 @@
<id>build-image</id>
<phase>install</phase>
<goals>
<goal>build-image</goal>
<goal>build-image-no-fork</goal>
</goals>
</execution>
</executions>
......
......@@ -12,11 +12,13 @@ import org.mapstruct.ReportingPolicy;
import de.ozgcloud.eingang.common.formdata.ServiceKonto;
import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress;
import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier;
import de.ozgcloud.eingang.semantik.common.ServiceKontoFactory;
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, unmappedTargetPolicy = ReportingPolicy.WARN)
interface FormCycleServiceKontoMapper {
@Mapping(target = "postfachAddress", ignore = true)
@Mapping(target = "type", constant = ServiceKontoFactory.POSTFACH_TYPE_BAYERN_ID)
@Mapping(target = "postfachAddresses", expression = "java(fromGrpcPostfachAddresses(serviceKonto))")
ServiceKonto fromGrpc(FormCycleServiceKonto serviceKonto);
......
......@@ -32,6 +32,7 @@ import org.mockito.InjectMocks;
import org.mockito.Spy;
import de.ozgcloud.eingang.common.formdata.FormHeaderTestFactory;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper;
class FormCycleFormDataMapperTest {
......@@ -59,7 +60,9 @@ class FormCycleFormDataMapperTest {
void shouldMapZustaendigeStelle() {
var mapped = mapper.toFormData(FormCycleFormDataTestFactory.create());
assertThat(mapped.getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo(FormCycleFormHeaderTestFactory.ORGANISATIONSEINHEIT_ID);
assertThat(mapped.getZustaendigeStelles())
.extracting(ZustaendigeStelle::getOrganisationseinheitenId)
.containsExactly(FormCycleFormHeaderTestFactory.ORGANISATIONSEINHEIT_ID);
}
}
......
......@@ -11,6 +11,7 @@ import org.mapstruct.factory.Mappers;
import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress;
import de.ozgcloud.eingang.common.formdata.ServiceKontoTestFactory;
import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier;
import de.ozgcloud.eingang.semantik.common.ServiceKontoFactory;
class FormCycleServiceKontoMapperTest {
......@@ -20,6 +21,13 @@ class FormCycleServiceKontoMapperTest {
@Nested
class TestFromGrpcServiceKonto {
@Test
void shouldMapType() {
var result = mapper.fromGrpc(FormCycleServiceKontoTestFactory.create());
assertThat(result.getType()).isEqualTo(ServiceKontoFactory.POSTFACH_TYPE_BAYERN_ID);
}
@DisplayName("trustLevel")
@Nested
class TestTrustLevel {
......
......@@ -36,7 +36,7 @@
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>formcycle-adapter-interface</artifactId>
<name>EM - Formcycle Adapter - Interface</name>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<properties>
<vorgang-manager.version>2.0.0</vorgang-manager.version>
......
......@@ -29,7 +29,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
</parent>
<artifactId>formcycle-adapter</artifactId>
......
......@@ -30,7 +30,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
......@@ -174,27 +174,14 @@
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<!-- cann be removed when using common lib > 2.3.2-->
<builder>paketobuildpacks/builder-jammy-base</builder>
<env>
<BPE_DELIM_JAVA_TOOL_OPTIONS xml:space="preserve"> </BPE_DELIM_JAVA_TOOL_OPTIONS>
<BPE_APPEND_JAVA_TOOL_OPTIONS>-Dfile.encoding=UTF-8</BPE_APPEND_JAVA_TOOL_OPTIONS>
</env>
</image>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
......@@ -211,7 +198,7 @@
<id>build-image</id>
<phase>install</phase>
<goals>
<goal>build-image</goal>
<goal>build-image-no-fork</goal>
</goals>
</execution>
</executions>
......
......@@ -29,7 +29,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
......
......@@ -31,7 +31,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
......@@ -244,7 +244,7 @@
<id>build-image</id>
<phase>install</phase>
<goals>
<goal>build-image</goal>
<goal>build-image-no-fork</goal>
</goals>
</execution>
</executions>
......
......@@ -382,15 +382,6 @@ class FormDataEndpointITCase {
assertThat(file.getContent().size()).isZero();
}
@Test
void checkForAttachmentFileContentStream() {
sendRequest();
var fileStream = formDataCaptor.getValue().getAttachments().get(0).getFiles().get(0).getContentStream();
assertThat(fileStream).isNotNull();
}
@Test
void checkAttachmentGroup2Count() {
sendRequest();
......@@ -437,14 +428,6 @@ class FormDataEndpointITCase {
assertThat(file.getContent().size()).isZero();
}
@Test
void checkForRepresentationFileContentStream() {
sendRequest();
var fileStream = formDataCaptor.getValue().getRepresentations().get(0).getContentStream();
assertThat(fileStream).isNotNull();
}
}
@DisplayName("service konto")
......
......@@ -64,15 +64,13 @@ class FormDataEndpointTest {
}
private Deposit buildRequest(String fileName) throws SAXException, IOException, ParserConfigurationException, URISyntaxException {
var depositData = new DepositData();
var attachment = new Attachment();
attachment.setName("XML-Daten.xml");
attachment.setContent(TestUtils.loadTextFile(fileName).getBytes());
depositData.getAttachments()
.add(attachment);
depositData.getAttachments().add(attachment);
var deposit = new Deposit();
deposit.setData(depositData);
......
......@@ -31,13 +31,13 @@
<parent>
<groupId>de.ozgcloud.common</groupId>
<artifactId>ozgcloud-common-parent</artifactId>
<version>4.3.1</version>
<version>4.7.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>OZG-Cloud Eingang Manager</name>
......
......@@ -29,7 +29,7 @@
<parent>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>eingang-manager</artifactId>
<version>2.13.0-SNAPSHOT</version>
<version>2.15.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
......
......@@ -23,6 +23,7 @@
*/
package de.ozgcloud.eingang.router;
import java.util.Optional;
import java.util.UUID;
import org.mapstruct.CollectionMappingStrategy;
......@@ -32,8 +33,6 @@ import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.ReportingPolicy;
import com.google.protobuf.ByteString;
import de.ozgcloud.eingang.common.formdata.Antragsteller;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
......@@ -52,17 +51,17 @@ import de.ozgcloud.vorgang.vorgang.GrpcZustaendigeStelle;
uses = { GrpcFormDataMapper.class, ServiceKontoMapper.class })
public interface GrpcEingangMapper {
@Mapping(source = "antragsteller.data", target = "antragsteller.otherData")
@Mapping(source = "attachments", target = "attachmentsList")
@Mapping(source = "representations", target = "representationsList")
GrpcEingang toEingang(FormData formData);
default ByteString byteArrayToByteString(byte[] byteArray) {
if (byteArray == null) {
return null;
}
@Mapping(target = "antragsteller.otherData", source = "formData.antragsteller.data")
@Mapping(target = "attachmentsList", source = "formData.attachments")
@Mapping(target = "representationsList", source = "formData.representations")
@Mapping(target = "zustaendigeStelle", expression = "java( toZustaendigeStelle(getZustaendigeStelle(formData, organisationsEinheitenId)) )")
GrpcEingang toEingang(FormData formData, Optional<String> organisationsEinheitenId);
return ByteString.copyFrom(byteArray);
default ZustaendigeStelle getZustaendigeStelle(FormData formData, Optional<String> organisationsEinheitenId) {
return organisationsEinheitenId.flatMap(oeId -> formData.getZustaendigeStelles().stream()
.filter(zustaendigeStelle -> zustaendigeStelle.getOrganisationseinheitenId().equals(oeId))
.findFirst())
.orElseGet(() -> ZustaendigeStelle.builder().build());
}
@Mapping(source = "files", target = "filesList")
......
......@@ -75,7 +75,7 @@ public class VorgangRemoteService {
logConnection(organisationsEinheitenId, vorgangServiceStub.get());
try {
return createVorgang(formData, grpcEingangMapper.toEingang(formData), vorgangServiceStub.get(), binaryFileServiceStub.get());
return createVorgang(formData, grpcEingangMapper.toEingang(formData, organisationsEinheitenId), vorgangServiceStub.get(), binaryFileServiceStub.get());
} finally {
finishStubConnections(List.of(vorgangServiceStub, binaryFileServiceStub));
}
......@@ -159,7 +159,7 @@ public class VorgangRemoteService {
}
String uploadIncomingFile(IncomingFile incomingFile) {
var fileContentStream = incomingFile.getContentStreamForFinalRead();
var fileContentStream = incomingFile.getContentStream();
var resultFuture = GrpcFileUploadUtils.createSender(this::buildChunkRequest, fileContentStream,
this::buildCallStreamObserver)
......
......@@ -23,31 +23,86 @@
*/
package de.ozgcloud.eingang.router;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import org.springframework.stereotype.Service;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormHeader;
import de.ozgcloud.eingang.common.formdata.IncomingFile;
import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
import de.ozgcloud.eingang.common.formdata.ServiceKonto;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
@AllArgsConstructor
@Service
@Log4j2
public class VorgangService {
private final VorgangRemoteService remoteService;
public String createVorgang(FormData formData) {
var preparedFormData = preserveConsistency(formData);
var vorgangId = createVorgangForOrganisationsEinheitIds(getOrganisationsEinheitIds(formData), preserveConsistency(formData));
cleanupFormDataFiles(formData);
return vorgangId;
}
void cleanupFormDataFiles(FormData formData) {
getFormDataFiles(formData)
.map(IncomingFile::getFile)
.map(File::toPath)
.forEach(this::deleteIncomingFile);
}
void deleteIncomingFile(Path path) {
try {
Files.deleteIfExists(path);
} catch (IOException e) {
logErrorOnDeleteFailure(e);
}
}
void logErrorOnDeleteFailure(Exception e) {
LOG.error("Failed to delete temp-file of incoming file!", e);
}
Stream<IncomingFile> getFormDataFiles(FormData formData) {
return Stream.concat(
formData.getRepresentations().stream(),
formData.getAttachments().stream()
.map(IncomingFileGroup::getFiles)
.flatMap(List::stream)
);
}
String createVorgangForOrganisationsEinheitIds(List<String> organisationsEinheitIds, FormData preparedFormData) {
return organisationsEinheitIds.isEmpty()
? createVorgangOnMissingZustaendigeStelle(preparedFormData)
: createMultipleVorgangs(preparedFormData, organisationsEinheitIds).getFirst();
}
String createVorgangOnMissingZustaendigeStelle(FormData formData) {
return remoteService.createVorgang(formData, Optional.empty());
}
return remoteService.createVorgang(preparedFormData, getOrganisationsEinheitId(preparedFormData));
List<String> createMultipleVorgangs(FormData formData, List<String> organisationseinheitIds) {
return organisationseinheitIds.stream()
.map(oeId -> remoteService.createVorgang(formData, Optional.of(oeId)))
.toList();
}
private Optional<String> getOrganisationsEinheitId(FormData formData) {
return Optional.ofNullable(formData.getZustaendigeStelle()).map(ZustaendigeStelle::getOrganisationseinheitenId);
List<String> getOrganisationsEinheitIds(FormData formData) {
return formData.getZustaendigeStelles().stream()
.map(ZustaendigeStelle::getOrganisationseinheitenId)
.toList();
}
FormData preserveConsistency(FormData formData) {
......
net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration
net.devh.boot.grpc.client.autoconfigure.GrpcClientMetricAutoConfiguration
net.devh.boot.grpc.client.autoconfigure.GrpcClientHealthAutoConfiguration
net.devh.boot.grpc.client.autoconfigure.GrpcClientSecurityAutoConfiguration
net.devh.boot.grpc.client.autoconfigure.GrpcClientTraceAutoConfiguration
net.devh.boot.grpc.client.autoconfigure.GrpcDiscoveryClientAutoConfiguration
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment