diff --git a/CHANGELOG.md b/CHANGELOG.md index dd8b0974..c0be4a80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog + +## 2.1.3 [2026-02-03] +### Fixed +- Fixed the way we retrieve the data processing context when we process raw responses +- Change variable reading type from int to long + ## 2.1.2 [2026-01-26] ### Fixed - Fixed numbers for pairwise diff --git a/pom.xml b/pom.xml index 5aa7eb08..3252ab71 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 fr.insee.genesis genesis-api - 2.1.2 + 2.1.3 jar genesis-api diff --git a/src/main/java/fr/insee/genesis/domain/service/context/DataProcessingContextService.java b/src/main/java/fr/insee/genesis/domain/service/context/DataProcessingContextService.java index 71a5aa06..958b09e6 100644 --- a/src/main/java/fr/insee/genesis/domain/service/context/DataProcessingContextService.java +++ b/src/main/java/fr/insee/genesis/domain/service/context/DataProcessingContextService.java @@ -256,9 +256,8 @@ public DataProcessingContextModel getContext(String interrogationId) throws Gene @Override public DataProcessingContextModel getContextByCollectionInstrumentId(String collectionInstrumentId){ - return DataProcessingContextMapper.INSTANCE.documentToModel( - dataProcessingContextPersistancePort.findByPartitionId(collectionInstrumentId) - ); + return dataProcessingContextPersistancePort.findByCollectionInstrumentId(collectionInstrumentId) + ; } @Override diff --git a/src/main/java/fr/insee/genesis/domain/service/rawdata/RawResponseService.java b/src/main/java/fr/insee/genesis/domain/service/rawdata/RawResponseService.java index b0d6cb72..4a837bfc 100644 --- a/src/main/java/fr/insee/genesis/domain/service/rawdata/RawResponseService.java +++ b/src/main/java/fr/insee/genesis/domain/service/rawdata/RawResponseService.java @@ -127,6 +127,8 @@ public DataProcessResult processRawResponses(String collectionInstrumentId, List //Send processed ids grouped by questionnaire (if review activated) if(dataProcessingContext != null && dataProcessingContext.isWithReview()) { sendProcessedIdsToQualityTool(surveyUnitModels); + } else { + log.warn("Data processing context not found for collection instrument {}. Ids processed not send to quality tool.",collectionInstrumentId); } //Remove processed ids from list diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/RawResponseControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/responses/RawResponseControllerTest.java index af1fd83b..47132e24 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/RawResponseControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/RawResponseControllerTest.java @@ -210,66 +210,6 @@ void getUnprocessedDataTest_processDate_present(){ //json @Test void processJsonRawDataTest(){ - //GIVEN - lunaticJsonRawDataPersistanceStub.getMongoStub().clear(); - surveyUnitPersistencePortStub.getMongoStub().clear(); - surveyUnitQualityToolPerretAdapterStub.getReceivedMaps().clear(); - String campaignId = "SAMPLETEST-PARADATA-V2"; - String questionnaireId = campaignId + "_quest"; - String interrogationId = "testinterrogationId1"; - String idUE = "testIdUE1"; - String varName = "AVIS_MAIL"; - String varValue = "TEST"; - addJsonRawDataDocumentToStub(campaignId, questionnaireId, interrogationId, idUE, null, LocalDateTime.now(),varName - , varValue); - - dataProcessingContextPersistancePortStub.getMongoStub().add( - DataProcessingContextMapper.INSTANCE.modelToDocument( - DataProcessingContextModel.builder() - .partitionId(campaignId) - .kraftwerkExecutionScheduleList(new ArrayList<>()) - .withReview(true) - .build() - ) - ); - - - List interrogationIdList = new ArrayList<>(); - interrogationIdList.add(interrogationId); - - //WHEN - rawResponseController.processJsonRawData(campaignId, questionnaireId, interrogationIdList); - - - //THEN - //Genesis model survey unit created successfully - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub()).isNotNull().isNotEmpty().hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst()).isNotNull(); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCampaignId()).isEqualTo(campaignId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectionInstrumentId()).isNotNull().isEqualTo(questionnaireId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getMode()).isNotNull().isEqualTo(Mode.WEB); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getInterrogationId()).isEqualTo(interrogationId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getUsualSurveyUnitId()).isEqualTo(idUE); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getFileDate()).isNotNull(); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getRecordDate()).isNotNull(); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables()).isNotNull().isNotEmpty().hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst()).isNotNull(); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().varId()).isNotNull().isEqualTo(varName); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().value()).isNotNull().isEqualTo(varValue); - - //Process date check - Assertions.assertThat(lunaticJsonRawDataPersistanceStub.getMongoStub().getFirst().processDate()).isNotNull(); - - //Perret call check - Assertions.assertThat(surveyUnitQualityToolPerretAdapterStub.getReceivedMaps()) - .hasSize(1); - Assertions.assertThat(surveyUnitQualityToolPerretAdapterStub.getReceivedMaps().getFirst()).containsKey(questionnaireId); - Assertions.assertThat(surveyUnitQualityToolPerretAdapterStub.getReceivedMaps().getFirst().get(questionnaireId)) - .contains(interrogationId); - } - - @Test - void processJsonRawDataV2Test(){ //GIVEN lunaticJsonRawDataPersistanceStub.getMongoStub().clear(); surveyUnitPersistencePortStub.getMongoStub().clear(); @@ -286,6 +226,7 @@ void processJsonRawDataV2Test(){ DataProcessingContextMapper.INSTANCE.modelToDocument( DataProcessingContextModel.builder() .partitionId(questionnaireId) + .collectionInstrumentId(questionnaireId) .kraftwerkExecutionScheduleList(new ArrayList<>()) .withReview(true) .build() diff --git a/src/test/java/fr/insee/genesis/domain/service/rawdata/LunaticJsonRawDataServiceTest.java b/src/test/java/fr/insee/genesis/domain/service/rawdata/LunaticJsonRawDataServiceTest.java index 96ba21a2..09c6049e 100644 --- a/src/test/java/fr/insee/genesis/domain/service/rawdata/LunaticJsonRawDataServiceTest.java +++ b/src/test/java/fr/insee/genesis/domain/service/rawdata/LunaticJsonRawDataServiceTest.java @@ -468,13 +468,13 @@ void convertRawData_if_collected_not_present_test() throws Exception { void convertRawData_multipleBatchs(int rawDataSize) throws Exception { //GIVEN String campaignId = "SAMPLETEST-PARADATA-V1"; - String questionnaireId = "TESTIDQUEST"; + String questionnaireId = "SAMPLETEST-PARADATA-V1"; List interrogationIdList = prepareConvertTest(rawDataSize, campaignId, questionnaireId); //Activate review dataProcessingContextPersistancePortStub.getMongoStub().add( DataProcessingContextMapper.INSTANCE.modelToDocument( DataProcessingContextModel.builder() - .partitionId(campaignId) + .collectionInstrumentId(questionnaireId) .withReview(true) .kraftwerkExecutionScheduleList(new ArrayList<>()) .build() @@ -482,8 +482,7 @@ void convertRawData_multipleBatchs(int rawDataSize) throws Exception { ); //WHEN - DataProcessResult dataProcessResult = lunaticJsonRawDataService.processRawData(campaignId, interrogationIdList, - new ArrayList<>()); + DataProcessResult dataProcessResult = lunaticJsonRawDataService.processRawData(questionnaireId); //THEN Assertions.assertThat(dataProcessResult.dataCount()).isEqualTo(rawDataSize * 2/*EDITED*/); @@ -499,14 +498,14 @@ void convertRawData_multipleBatchs(int rawDataSize) throws Exception { void convertRawData_review_desactivated() throws Exception { //GIVEN String campaignId = "SAMPLETEST-PARADATA-V1"; - String questionnaireId = "TESTIDQUEST"; + String questionnaireId = "SAMPLETEST-PARADATA-V1"; List interrogationIdList = prepareConvertTest(1, campaignId, questionnaireId); //Desactivate review dataProcessingContextPersistancePortStub.getMongoStub().add( DataProcessingContextMapper.INSTANCE.modelToDocument( DataProcessingContextModel.builder() - .partitionId(campaignId) + .collectionInstrumentId(questionnaireId) .withReview(false) .kraftwerkExecutionScheduleList(new ArrayList<>()) .build() @@ -514,8 +513,7 @@ void convertRawData_review_desactivated() throws Exception { ); //WHEN - DataProcessResult dataProcessResult = lunaticJsonRawDataService.processRawData(campaignId, interrogationIdList, - new ArrayList<>()); + DataProcessResult dataProcessResult = lunaticJsonRawDataService.processRawData(questionnaireId); //THEN Assertions.assertThat(dataProcessResult.dataCount()).isEqualTo(2); diff --git a/src/test/java/fr/insee/genesis/stubs/LunaticJsonRawDataPersistanceStub.java b/src/test/java/fr/insee/genesis/stubs/LunaticJsonRawDataPersistanceStub.java index 8ffc20a2..11a52f04 100644 --- a/src/test/java/fr/insee/genesis/stubs/LunaticJsonRawDataPersistanceStub.java +++ b/src/test/java/fr/insee/genesis/stubs/LunaticJsonRawDataPersistanceStub.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -229,7 +230,7 @@ public Set findUnprocessedInterrogationIdsByCollectionInstrumentId(Strin lunaticJsonDataDocument -> lunaticJsonDataDocument.processDate() == null && lunaticJsonDataDocument.questionnaireId().equals(collectionInstrumentId) ).toList(); - Set interrogationIds = new HashSet<>(); + Set interrogationIds = new LinkedHashSet<>(); unprocessedDocuments.forEach(doc -> interrogationIds.add(doc.interrogationId())); return interrogationIds; }