diff --git a/src/main/java/de/ozgcloud/admin/common/DtoService.java b/src/main/java/de/ozgcloud/admin/common/DtoService.java new file mode 100644 index 0000000000000000000000000000000000000000..ca024525b112ba549dd52772d6be480edb4336dd --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/common/DtoService.java @@ -0,0 +1,16 @@ +package de.ozgcloud.admin.common; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.springframework.stereotype.Service; + +@Service +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface DtoService { + + String value(); +} diff --git a/src/main/java/de/ozgcloud/admin/common/SettingDtoService.java b/src/main/java/de/ozgcloud/admin/common/SettingDtoService.java new file mode 100644 index 0000000000000000000000000000000000000000..2624360a295f6733a404ccfa78f37a640d3cc058 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/common/SettingDtoService.java @@ -0,0 +1,8 @@ +package de.ozgcloud.admin.common; + +public interface SettingDtoService { + + String getSettingKeyName(); + + Object getDataTransferObject(); +} diff --git a/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..80ba34c4e74442fd4cd0e019ca4b9211b431e577 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java @@ -0,0 +1,15 @@ +package de.ozgcloud.admin.reporting; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; + +import de.ozgcloud.admin.reporting.ReportingSettingDto.AggregationMappingDto; + +@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public interface AggregationMappingMapper { + + @Mapping(target = "fieldMapping", ignore = true) + @Mapping(target = "fieldMappings", source = "mappings") + AggregationMappingDto toMapping(ReportingSetting setting); +} diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOService.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOService.java new file mode 100644 index 0000000000000000000000000000000000000000..b74146d6317935ec3d7b72f79644c48d9683dbde --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOService.java @@ -0,0 +1,32 @@ +package de.ozgcloud.admin.reporting; + +import java.util.stream.Stream; + +import de.ozgcloud.admin.common.DtoService; +import de.ozgcloud.admin.common.SettingDtoService; +import de.ozgcloud.admin.setting.SettingConstants; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@DtoService(SettingConstants.AGGREGATION_MANAGER) +class ReportingAggregationManagerSettingDTOService implements SettingDtoService { + + private final ReportingSettingRepository repository; + private final AggregationMappingMapper mapper; + + @Override + public ReportingSettingDto getDataTransferObject() { + return mapToDto(repository.findAll().stream()); + } + + ReportingSettingDto mapToDto(Stream<ReportingSetting> settings) { + return ReportingSettingDto.builder() + .aggregationMappings(settings.map(mapper::toMapping).toList()) + .build(); + } + + @Override + public String getSettingKeyName() { + return "aggregation"; + } +} diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingSetting.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingSetting.java index 83ad52c2368f6141f31b0ba694a185c0c0ddcdaf..963c9d0c698cafa914def19dc38624d5b5852b17 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/ReportingSetting.java +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingSetting.java @@ -2,6 +2,7 @@ package de.ozgcloud.admin.reporting; import java.util.List; +import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; @@ -9,34 +10,47 @@ import org.springframework.data.annotation.Id; import org.springframework.data.annotation.TypeAlias; import org.springframework.data.mongodb.core.mapping.Document; +import com.fasterxml.jackson.annotation.JsonIgnore; + +import de.ozgcloud.admin.reporting.ReportingSettingDto.FormIdentifierDto; import lombok.Builder; import lombok.Getter; +import lombok.Singular; import lombok.extern.jackson.Jacksonized; @Document("settings") -@TypeAlias("reporting") +@TypeAlias("fieldMapping") @Jacksonized @Builder @Getter public class ReportingSetting { @Id + @JsonIgnore private String id; @Builder.Default - private String name = "reporting"; + private String name = "fieldMapping"; - @NotBlank - private String formEngineName; - @NotBlank - private String formId; + @Valid + private FormIdentifierDto formIdentifier; @NotEmpty + @Singular private List<FieldMapping> mappings; @Builder @Getter static class FieldMapping { + @NotBlank private String sourcePath; + @NotBlank private String targetPath; } + + static class FormIdentifer { + @NotBlank + private String formEngineName; + @NotBlank + private String formId; + } } diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingDto.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingDto.java new file mode 100644 index 0000000000000000000000000000000000000000..5b25418b8f2cfd1a9a4c2e38cf0d6651f353b337 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingDto.java @@ -0,0 +1,39 @@ +package de.ozgcloud.admin.reporting; + +import java.util.List; + +import lombok.Builder; +import lombok.Getter; +import lombok.Singular; +import lombok.ToString; + +@Builder +@Getter +@ToString +public class ReportingSettingDto { + + @Singular + private List<AggregationMappingDto> aggregationMappings; + + @Builder + @Getter + static class AggregationMappingDto { + private FormIdentifierDto formIdentifier; + @Singular + private List<FieldMappingDto> fieldMappings; + } + + @Builder + @Getter + static class FormIdentifierDto { + private String formEngineName; + private String formId; + } + + @Builder + @Getter + static class FieldMappingDto { + private String sourcePath; + private String targetPath; + } +} diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingRepository.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingRepository.java index 3614a99aad098ae462f1b8d3d1c2400b3ffaaf28..0c4f3ec770b0f486279273305ee0103d023b5145 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingRepository.java +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingSettingRepository.java @@ -1,9 +1,14 @@ package de.ozgcloud.admin.reporting; +import java.util.List; + import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.data.mongodb.repository.Query; import org.springframework.data.rest.core.annotation.RepositoryRestResource; @RepositoryRestResource -public interface ReportingSettingRepository extends MongoRepository<ReportingSetting, String> { - +interface ReportingSettingRepository extends MongoRepository<ReportingSetting, String> { + @Override + @Query("{'_class': 'fieldMapping'}") + List<ReportingSetting> findAll(); } diff --git a/src/main/java/de/ozgcloud/admin/setting/MapBasedApplicationSettingDto.java b/src/main/java/de/ozgcloud/admin/setting/MapBasedApplicationSettingDto.java new file mode 100644 index 0000000000000000000000000000000000000000..864acde2c206245c5f4c4f253606f9d7217e680c --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/setting/MapBasedApplicationSettingDto.java @@ -0,0 +1,22 @@ +package de.ozgcloud.admin.setting; + +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; + +import lombok.Builder; +import lombok.Getter; +import lombok.Singular; + +@Builder +@Getter +public class MapBasedApplicationSettingDto implements ApplicationSettingDTO { + + @Singular + private Map<String, Object> settings; + + @JsonAnyGetter + public Map<String, Object> getSettings() { + return settings; + } +} diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingConstants.java b/src/main/java/de/ozgcloud/admin/setting/SettingConstants.java index 9c40c6120a702447e27ebc8093025568763de5d3..afcf09344d8f76dc3519c635b99bfc933e185d24 100644 --- a/src/main/java/de/ozgcloud/admin/setting/SettingConstants.java +++ b/src/main/java/de/ozgcloud/admin/setting/SettingConstants.java @@ -32,4 +32,6 @@ public class SettingConstants { static final String REL = "settings"; public static final String PATH = "settings"; + + public static final String AGGREGATION_MANAGER = "OzgCloud_AggregationManager"; } diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java b/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java index db793f2f49805d18a48037b96817cdd1aa4c88e3..dfe17a508e03e1a2fab7b31945dd05701c2fb51c 100644 --- a/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java +++ b/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java @@ -23,6 +23,8 @@ */ package de.ozgcloud.admin.setting; +import static de.ozgcloud.admin.setting.SettingConstants.*; + import java.util.Map; import java.util.Optional; @@ -41,13 +43,12 @@ import lombok.RequiredArgsConstructor; @Component public class SettingEnvironmentRepository implements EnvironmentRepository { - private final SettingService settingService; - - private final ObjectMapper objectMapper; - private static final String ALFA = "Alfa"; private static final String VORGANG_MANAGER = "OzgCloud_VorgangManager"; + private final SettingService settingService; + private final ObjectMapper objectMapper; + @Override public Environment findOne(String application, String profile, String label) { return buildEnvironment(application, findAnwendungSettingDTO(application)); @@ -55,12 +56,14 @@ public class SettingEnvironmentRepository implements EnvironmentRepository { Optional<ApplicationSettingDTO> findAnwendungSettingDTO(String application) { switch (application) { - case ALFA: - return Optional.of(settingService.getAlfaSettingDTO()); - case VORGANG_MANAGER: - return Optional.of(settingService.getVorgangManagerSettingDTO()); - default: - return Optional.empty(); + case ALFA: + return Optional.of(settingService.getAlfaSettingDTO()); + case VORGANG_MANAGER: + return Optional.of(settingService.getVorgangManagerSettingDTO()); + case AGGREGATION_MANAGER: + return Optional.of(settingService.getAggregationManagerSettingDto()); + default: + return Optional.empty(); } } diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingService.java b/src/main/java/de/ozgcloud/admin/setting/SettingService.java index 51b8529add8a7e42cb367f1fc6b4a062f8eaa4cb..ef6a78f31301e24fc225ce6e7f12d84772d71e1c 100644 --- a/src/main/java/de/ozgcloud/admin/setting/SettingService.java +++ b/src/main/java/de/ozgcloud/admin/setting/SettingService.java @@ -23,11 +23,20 @@ */ package de.ozgcloud.admin.setting; +import static de.ozgcloud.admin.setting.SettingConstants.*; + +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import jakarta.annotation.PostConstruct; + +import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.stereotype.Service; +import de.ozgcloud.admin.common.DtoService; +import de.ozgcloud.admin.common.SettingDtoService; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; import lombok.RequiredArgsConstructor; @@ -41,6 +50,21 @@ class SettingService { private final SettingRepository repository; private final SettingMapper mapper; + private final ListableBeanFactory beanFactory; + + private Map<String, List<SettingDtoService>> dtoServiceByManager; + + @PostConstruct + void initDtoServices() { + this.dtoServiceByManager = beanFactory.getBeansWithAnnotation(DtoService.class).values().stream() + .map(dtoService -> (SettingDtoService) dtoService) + .collect(Collectors.groupingBy(dtoService -> getManagerForService(dtoService))); + } + + private String getManagerForService(SettingDtoService dtoService) { + var annotation = dtoService.getClass().getDeclaredAnnotation(DtoService.class); + return annotation.value(); + } public AlfaSettingDTO getAlfaSettingDTO() { var postfachData = getSettingWithPostfachFromDb(); @@ -63,6 +87,17 @@ class SettingService { .build(); } + public ApplicationSettingDTO getAggregationManagerSettingDto() { + return MapBasedApplicationSettingDto.builder() + .settings(getDtoService(AGGREGATION_MANAGER).stream() + .collect(Collectors.toMap(SettingDtoService::getSettingKeyName, SettingDtoService::getDataTransferObject))) + .build(); + } + + private List<SettingDtoService> getDtoService(String managerName) { + return dtoServiceByManager.getOrDefault(managerName, Collections.emptyList()); + } + PostfachSettingBody getSettingWithPostfachFromDb() { return repository.findOneByName(POSTFACH_SETTING_ITEM_NAME) .map(Setting::getSettingBody) @@ -75,4 +110,5 @@ class SettingService { OrganisationsEinheitWithSettings::organisationsEinheitId, OrganisationsEinheitWithSettings::settings)); } + } diff --git a/src/main/resources/application-local.yaml b/src/main/resources/application-local.yaml index c5bb57b37de68a6c4b610d764df4023e48e248f4..7faeb3acc343d6320c0c77fcfcd3da7aca6dffbb 100644 --- a/src/main/resources/application-local.yaml +++ b/src/main/resources/application-local.yaml @@ -1,3 +1,6 @@ +logging: + config: classpath:log4j2-local.xml + spring: data: mongodb: diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index f4a4954da71dc34a7be41330ce9d37169793c969..eda944334cfe180495861f29ed07464d4164c552 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -21,7 +21,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. logging: level: - ROOT: INFO + ROOT: WARN '[de.ozgcloud]': INFO management: diff --git a/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java b/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java index 57b29873233059f02882fe1b56c5f4079f57c792..b50116770c539a5abba0108c8f82efe81b0763ec 100644 --- a/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java +++ b/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java @@ -31,8 +31,6 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.exc.StreamReadException; -import com.fasterxml.jackson.databind.DatabindException; import com.fasterxml.jackson.databind.ObjectMapper; import de.ozgcloud.admin.common.user.TestId; diff --git a/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java b/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java index eaaf4500527625ff9707498335e93fb6bc6210a3..74c8a11de179d56b34bfb52fc47108c5cd491dc6 100644 --- a/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java +++ b/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java @@ -24,11 +24,9 @@ package de.ozgcloud.admin.common; import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; import java.util.UUID; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -36,7 +34,6 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.NullAndEmptySource; import org.mockito.Mock; import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import lombok.Builder; diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOServiceTest.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a7b8213b81c5a201f4c21811b46197abba4cc034 --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDTOServiceTest.java @@ -0,0 +1,30 @@ +package de.ozgcloud.admin.reporting; + +import static org.assertj.core.api.Assertions.*; + +import java.util.stream.Stream; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; +import org.mockito.InjectMocks; +import org.mockito.Spy; + +class ReportingAggregationManagerSettingDTOServiceTest { + + @InjectMocks + private ReportingAggregationManagerSettingDTOService service; + @Spy + private AggregationMappingMapper mapper = Mappers.getMapper(AggregationMappingMapper.class); + + @Nested + class TestMapToDto { + @Test + void shouldCreateDto() { + var dto = service.mapToDto(Stream.of(ReportingSettingTestFactory.create())); + + assertThat(dto).usingRecursiveComparison().isEqualTo(ReportingSettingDtoTestFactory.create()); + } + } + +} diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingDtoTestFactory.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingDtoTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..b465498c212a189655f7fe6d06e44857e0b6857c --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingDtoTestFactory.java @@ -0,0 +1,25 @@ +package de.ozgcloud.admin.reporting; + +import static de.ozgcloud.admin.reporting.ReportingSettingTestFactory.*; + +import de.ozgcloud.admin.reporting.ReportingSettingDto.AggregationMappingDto; +import de.ozgcloud.admin.reporting.ReportingSettingDto.FieldMappingDto; +import de.ozgcloud.admin.reporting.ReportingSettingDto.FormIdentifierDto; + +class ReportingSettingDtoTestFactory { + + public static final FormIdentifierDto FORM_IDENTIFIER = FormIdentifierDto.builder().formId(FORM_ID).formEngineName(FORM_ENGINE_NAME).build(); + + public static ReportingSettingDto create() { + return createBuilder().build(); + } + + public static ReportingSettingDto.ReportingSettingDtoBuilder createBuilder() { + return ReportingSettingDto.builder() + .aggregationMapping(AggregationMappingDto.builder() + .formIdentifier(FORM_IDENTIFIER) + .fieldMapping(FieldMappingDto.builder().sourcePath(SOURCE_PATH).targetPath(TARGET_PATH).build()) + .build()); + } + +} diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingsITCase.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java similarity index 92% rename from src/test/java/de/ozgcloud/admin/reporting/ReportingSettingsITCase.java rename to src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java index 6e0a486da2fec9b410f770338962623438f1106f..298e5a192005f109e819bee8996965af1465961a 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingsITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java @@ -6,7 +6,6 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -16,12 +15,13 @@ import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import de.ozgcloud.common.test.DataITCase; +import de.ozgcloud.common.test.TestUtils; import lombok.SneakyThrows; @AutoConfigureMockMvc @WithMockUser(roles = "ADMIN_ADMIN") @DataITCase -class ReportingSettingsITCase { +class ReportingSettingITCase { @Autowired private MockMvc mockMvc; @@ -50,12 +50,11 @@ class ReportingSettingsITCase { .andExpect(status().isUnprocessableEntity()); } - @Disabled @Test @SneakyThrows void shouldAddReportingSetting() { mockMvc.perform(post("/api/configuration/reportingSettings").with(csrf()) - .contentType(MediaType.APPLICATION_JSON).content("{}")) + .contentType(MediaType.APPLICATION_JSON).content(TestUtils.loadTextFile("reporting/request.json"))) .andExpect(status().isCreated()); var collection = mongoOperations.getCollection("settings"); diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingRepositoryITCase.java new file mode 100644 index 0000000000000000000000000000000000000000..96905a1bc5ff958a2c008f719255012ff7893830 --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingRepositoryITCase.java @@ -0,0 +1,37 @@ +package de.ozgcloud.admin.reporting; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoOperations; + +import de.ozgcloud.admin.setting.SettingTestFactory; +import de.ozgcloud.common.test.DataITCase; + +@DataITCase +class ReportingSettingRepositoryITCase { + + @Autowired + private ReportingSettingRepository repository; + + @Autowired + private MongoOperations operations; + + @BeforeEach + void dropCollection() { + operations.dropCollection("settings"); + } + + @Test + void shouldLoadOnlyFieldMapping() { + operations.save(ReportingSettingTestFactory.create()); + operations.save(SettingTestFactory.create()); + + var result = repository.findAll(); + + assertThat(result).hasSize(1); + } + +} diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingTestFactory.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..b825f04d3d39303a73301711c10a75b47011b9d0 --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingTestFactory.java @@ -0,0 +1,31 @@ +package de.ozgcloud.admin.reporting; + +import java.util.UUID; + +import de.ozgcloud.admin.reporting.ReportingSetting.FieldMapping; +import de.ozgcloud.admin.reporting.ReportingSettingDto.FormIdentifierDto; + +class ReportingSettingTestFactory { + + public static final String ID = UUID.randomUUID().toString(); + public static final String FORM_ENGINE_NAME = "A12"; + public static final String FORM_ID = "123AABC"; + + public static final String SOURCE_PATH = "name"; + public static final String TARGET_PATH = "antragsteller.name"; + + public static ReportingSetting create() { + return createBuilder().build(); + } + + public static ReportingSetting.ReportingSettingBuilder createBuilder() { + return ReportingSetting.builder() + .id(UUID.randomUUID().toString()) + .formIdentifier(FormIdentifierDto.builder() + .formEngineName(FORM_ENGINE_NAME) + .formId(FORM_ID) + .build()) + .mapping(FieldMapping.builder().sourcePath(SOURCE_PATH).targetPath(TARGET_PATH).build()); + } + +} diff --git a/src/test/resources/application-itcase.yaml b/src/test/resources/application-itcase.yaml index 05de7ad1649a52ab4e7b374aebe380da687ec0dd..0770237228911d2284f4d2237c22c005037cb7eb 100644 --- a/src/test/resources/application-itcase.yaml +++ b/src/test/resources/application-itcase.yaml @@ -1,4 +1,6 @@ logging: + level: + '[org.springframework.data.mongodb]': WARN config: classpath:log4j2-local.xml spring: diff --git a/src/test/resources/reporting/request.json b/src/test/resources/reporting/request.json new file mode 100644 index 0000000000000000000000000000000000000000..19608183fde4c05f0d33b7bc72ce76f411b9bb40 --- /dev/null +++ b/src/test/resources/reporting/request.json @@ -0,0 +1,12 @@ +{ + "formIdentifier": { + "formEngineName": "AFM", + "formId": "42" + }, + "mappings": [ + { + "sourcePath": "name", + "targetPath": "antragsteller.name" + } + ] +} \ No newline at end of file