Skip to content

Commit 9daaa35

Browse files
committed
Merge branch 'main' into devIndexpayload.campaignId
2 parents d043676 + 5887ad9 commit 9daaa35

14 files changed

Lines changed: 78 additions & 11 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip
22
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
# Changelog
2+
3+
4+
## 2.0.3 [2026-01-08]
5+
### Fixed
6+
- Quality tool is ready without final backslash
7+
8+
9+
## 2.0.2 [2026-01-07]
10+
### Fixed
11+
- Revert change url for quality tool, waiting for its update
12+
213
## 2.0.1 [2026-01-07]
314
### Fixed
415
- Crash when get questionnaireIds by null processDate with too much raw datas in lunaticjsondata

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>fr.insee.genesis</groupId>
66
<artifactId>genesis-api</artifactId>
7-
<version>2.0.1</version>
7+
<version>2.0.3</version>
88
<packaging>jar</packaging>
99
<name>genesis-api</name>
1010

src/main/java/fr/insee/genesis/controller/rest/responses/ModeController.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
import fr.insee.genesis.controller.rest.CommonApiResponse;
44
import fr.insee.genesis.domain.model.surveyunit.Mode;
55
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
6+
import fr.insee.genesis.exceptions.QuestionnaireNotFoundException;
67
import io.swagger.v3.oas.annotations.Operation;
78
import lombok.extern.slf4j.Slf4j;
9+
import org.springframework.http.HttpStatus;
810
import org.springframework.http.ResponseEntity;
911
import org.springframework.stereotype.Controller;
1012
import org.springframework.web.bind.annotation.GetMapping;
1113
import org.springframework.web.bind.annotation.RequestMapping;
1214
import org.springframework.web.bind.annotation.RequestParam;
1315

16+
import java.util.Collections;
1417
import java.util.List;
1518

1619
@RequestMapping(path = "/modes" )
@@ -29,8 +32,13 @@ public ModeController(SurveyUnitApiPort surveyUnitService) {
2932
@Operation(summary = "List sources/modes used for a given collection instrument (ex questionnaire)")
3033
@GetMapping(path = "/by-questionnaire")
3134
public ResponseEntity<List<Mode>> getModesByQuestionnaire(@RequestParam("questionnaireId") String collectionInstrumentId) {
32-
List<Mode> modes = surveyUnitService.findModesByCollectionInstrumentId(collectionInstrumentId);
33-
return ResponseEntity.ok(modes);
35+
try {
36+
List<Mode> modes = surveyUnitService.findModesByCollectionInstrumentId(collectionInstrumentId);
37+
return ResponseEntity.ok(modes);
38+
} catch (QuestionnaireNotFoundException e) {
39+
return ResponseEntity.status(HttpStatus.NOT_FOUND)
40+
.body(Collections.emptyList());
41+
}
3442
}
3543

3644
@Operation(summary = "List sources/modes used for a given campaign")

src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ public ResponseEntity<SurveyUnitSimplified> getLatestByInterrogationOneObject(@R
300300
.collectionInstrumentId(responses.getFirst().getCollectionInstrumentId())
301301
.campaignId(responses.getFirst().getCampaignId())
302302
.interrogationId(responses.getFirst().getInterrogationId())
303+
.mode(mode)
303304
.usualSurveyUnitId(responses.getFirst().getUsualSurveyUnitId())
304305
.validationDate(validationDate)
305306
.questionnaireState(questionnaireState)

src/main/java/fr/insee/genesis/domain/ports/api/LunaticJsonRawDataApiPort.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public interface LunaticJsonRawDataApiPort {
2121

2222
void save(LunaticJsonRawDataModel rawData);
2323
List<LunaticJsonRawDataModel> getRawData(String campaignName, Mode mode, List<String> interrogationIdList);
24+
List<LunaticJsonRawDataModel> getRawDataByQuestionnaireId(String questionnaireId, Mode mode, List<String> interrogationIdList);
2425
List<SurveyUnitModel> convertRawData(List<LunaticJsonRawDataModel> rawData, VariablesMap variablesMap);
2526
List<LunaticJsonRawDataUnprocessedDto> getUnprocessedDataIds();
2627
Set<String> getUnprocessedDataQuestionnaireIds();

src/main/java/fr/insee/genesis/domain/ports/spi/LunaticJsonRawDataPersistencePort.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public interface LunaticJsonRawDataPersistencePort {
1515

1616
void save(LunaticJsonRawDataModel rawData);
1717
List<LunaticJsonRawDataModel> findRawData(String campaignName, Mode mode, List<String> interrogationIdList);
18+
List<LunaticJsonRawDataModel> findRawDataByQuestionnaireId(String questionnaireId, Mode mode, List<String> interrogationIdList);
1819
List<LunaticJsonRawDataModel> findRawDataByInterrogationID(String interrogationId);
1920
List<LunaticJsonRawDataModel> getAllUnprocessedData();
2021
void updateProcessDates(String campaignId, Set<String> interrogationIds);

src/main/java/fr/insee/genesis/domain/service/rawdata/LunaticJsonRawDataService.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ public List<LunaticJsonRawDataModel> getRawData(String campaignName, Mode mode,
101101
}
102102

103103
@Override
104+
public List<LunaticJsonRawDataModel> getRawDataByQuestionnaireId(String questionnaireId, Mode mode, List<String> interrogationIdList) {
105+
return lunaticJsonRawDataPersistencePort.findRawDataByQuestionnaireId(questionnaireId, mode, interrogationIdList);
106+
}
107+
108+
@Override
104109
public List<LunaticJsonRawDataModel> getRawDataByInterrogationId(String interrogationId) {
105110
return lunaticJsonRawDataPersistencePort.findRawDataByInterrogationID(interrogationId);
106111
}
@@ -230,7 +235,7 @@ private VariablesMap getVariablesMap(String questionnaireId, Mode mode, List<Gen
230235

231236
private List<SurveyUnitModel> getConvertedSurveyUnits(String questionnaireId, Mode mode, List<String> interrogationIdListForMode, int maxIndex, VariablesMap variablesMap) {
232237
List<String> interrogationIdToProcess = interrogationIdListForMode.subList(0, maxIndex);
233-
List<LunaticJsonRawDataModel> rawData = getRawData(questionnaireId, mode, interrogationIdToProcess);
238+
List<LunaticJsonRawDataModel> rawData = getRawDataByQuestionnaireId(questionnaireId, mode, interrogationIdToProcess);
234239
return convertRawData(
235240
rawData,
236241
variablesMap

src/main/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitService.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import fr.insee.genesis.domain.service.metadata.QuestionnaireMetadataService;
2121
import fr.insee.genesis.domain.utils.GroupUtils;
2222
import fr.insee.genesis.exceptions.GenesisException;
23+
import fr.insee.genesis.exceptions.QuestionnaireNotFoundException;
2324
import fr.insee.genesis.infrastructure.utils.FileUtils;
2425
import lombok.extern.slf4j.Slf4j;
2526
import org.springframework.beans.factory.annotation.Autowired;
@@ -332,9 +333,12 @@ public List<SurveyUnitModel> findInterrogationIdsAndModesByQuestionnaireId(Strin
332333
@Override
333334
public List<Mode> findModesByCollectionInstrumentId(String collectionInstrumentId) {
334335
List<SurveyUnitModel> surveyUnitModels = surveyUnitPersistencePort.findInterrogationIdsByCollectionInstrumentId(collectionInstrumentId);
335-
List<Mode> sources = new ArrayList<>();
336-
surveyUnitModels.forEach(surveyUnitModel -> sources.add(surveyUnitModel.getMode()));
337-
return sources.stream().distinct().toList();
336+
if (surveyUnitModels == null || surveyUnitModels.isEmpty()) {
337+
log.warn("No collectionInstrument found with id: {}", collectionInstrumentId);
338+
throw new QuestionnaireNotFoundException(collectionInstrumentId);
339+
}
340+
List<Mode> sources = surveyUnitModels.stream().map(SurveyUnitModel::getMode).distinct().toList();
341+
return sources;
338342
}
339343

340344
@Override
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package fr.insee.genesis.exceptions;
2+
3+
public class QuestionnaireNotFoundException extends RuntimeException {
4+
public QuestionnaireNotFoundException(String questionnaireId) {
5+
super("No questionnaire found with id: " + questionnaireId);
6+
}
7+
}

0 commit comments

Comments
 (0)