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