Skip to content

Commit 4bb9271

Browse files
committed
feat: WIP new modele filiere
1 parent eee89db commit 4bb9271

33 files changed

+359
-120
lines changed

src/main/java/fr/insee/genesis/controller/adapter/LunaticJsonAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class LunaticJsonAdapter {
1313

1414
public SurveyUnitModel convert(LunaticJsonSurveyUnit su){
1515
return SurveyUnitModel.builder()
16-
.questionnaireId(su.getQuestionnaireId())
16+
.collectionInstrumentId(su.getQuestionnaireId())
1717
.campaignId("")
1818
.interrogationId(su.getInterrogationId())
1919
.state(DataState.COLLECTED)

src/main/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public static List<SurveyUnitModel> convert(LunaticXmlSurveyUnit su, VariablesMa
6969
*/
7070
private static SurveyUnitModel getStateDataFromSurveyUnit(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String campaignId, DataState dataState, Mode mode) {
7171
SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder()
72-
.questionnaireId(su.getQuestionnaireModelId().toUpperCase())
72+
.collectionInstrumentId(su.getQuestionnaireModelId().toUpperCase())
7373
.campaignId(campaignId)
7474
.interrogationId(su.getId())
7575
.state(dataState)

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import fr.insee.modelefiliere.RawResponseDto;
2222
import io.swagger.v3.oas.annotations.Hidden;
2323
import io.swagger.v3.oas.annotations.Operation;
24+
import io.swagger.v3.oas.annotations.Parameter;
2425
import jakarta.validation.Valid;
2526
import lombok.extern.slf4j.Slf4j;
2627
import org.springframework.data.domain.Page;
@@ -194,14 +195,18 @@ public ResponseEntity<String> saveRawResponsesFromRawResponseDto(
194195
@PostMapping(path = "/raw-responses/process")
195196
@PreAuthorize("hasRole('SCHEDULER')")
196197
public ResponseEntity<String> processRawResponses(
197-
@RequestParam("questionnaireId") String questionnaireId,
198+
@Parameter(
199+
description = "Id of the collection instrument (old questionnaireId)",
200+
example = "ENQTEST2025X00"
201+
)
202+
@RequestParam("collectionInstrumentId") String collectionInstrumentId,
198203
@RequestBody List<String> interrogationIdList
199204
) {
200-
log.info("Try to process raw responses for questionnaireId {} and {} interrogationIds", interrogationIdList.size());
205+
log.info("Try to process raw responses for questionnaireId {} and {} interrogationIds", collectionInstrumentId, interrogationIdList.size());
201206
List<GenesisError> errors = new ArrayList<>();
202207

203208
try {
204-
DataProcessResult result = rawResponseApiPort.processRawResponses(questionnaireId, interrogationIdList, errors);
209+
DataProcessResult result = rawResponseApiPort.processRawResponses(collectionInstrumentId, interrogationIdList, errors);
205210
return result.formattedDataCount() == 0 ?
206211
ResponseEntity.ok("%d document(s) processed".formatted(result.dataCount()))
207212
: ResponseEntity.ok("%d document(s) processed, including %d FORMATTED after data verification"

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,10 @@ public ResponseEntity<SurveyUnitSimplified> getLatestByInterrogationOneObject(@R
248248
outputExternalVariables.addAll(response.getExternalVariables());
249249
});
250250
return ResponseEntity.ok(SurveyUnitSimplified.builder()
251-
.questionnaireId(responses.getFirst().getQuestionnaireId())
251+
.questionnaireId(responses.getFirst().getCollectionInstrumentId())
252252
.campaignId(responses.getFirst().getCampaignId())
253253
.interrogationId(responses.getFirst().getInterrogationId())
254-
.surveyUnitId(responses.getFirst().getIdUE())
254+
.surveyUnitId(responses.getFirst().getUsualSurveyUnitId())
255255
.variablesUpdate(outputVariables)
256256
.externalVariables(outputExternalVariables)
257257
.build());
@@ -278,10 +278,10 @@ public ResponseEntity<List<SurveyUnitSimplified>> getLatestForInterrogationList(
278278
});
279279
if (!outputVariables.isEmpty() || !outputExternalVariables.isEmpty()) {
280280
results.add(SurveyUnitSimplified.builder()
281-
.questionnaireId(responses.getFirst().getQuestionnaireId())
281+
.questionnaireId(responses.getFirst().getCollectionInstrumentId())
282282
.campaignId(responses.getFirst().getCampaignId())
283283
.interrogationId(responses.getFirst().getInterrogationId())
284-
.surveyUnitId(responses.getFirst().getIdUE())
284+
.surveyUnitId(responses.getFirst().getUsualSurveyUnitId())
285285
.mode(mode)
286286
.variablesUpdate(outputVariables)
287287
.externalVariables(outputExternalVariables)
@@ -358,7 +358,7 @@ private SurveyUnitSimplified fusionWithLastUpdated(List<SurveyUnitModel> respons
358358
Mode modeWrapped = Mode.getEnumFromModeName(mode);
359359

360360
simplifiedResponse = SurveyUnitSimplified.builder()
361-
.questionnaireId(responsesForSingleInterrId.getFirst().getQuestionnaireId())
361+
.questionnaireId(responsesForSingleInterrId.getFirst().getCollectionInstrumentId())
362362
.campaignId(responsesForSingleInterrId.getFirst().getCampaignId())
363363
.interrogationId(responsesForSingleInterrId.getFirst().getInterrogationId())
364364
.mode(modeWrapped)

src/main/java/fr/insee/genesis/domain/model/surveyunit/Mode.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package fr.insee.genesis.domain.model.surveyunit;
22

3+
import com.fasterxml.jackson.annotation.JsonCreator;
34
import io.swagger.v3.oas.annotations.media.Schema;
45
import lombok.Getter;
56
import org.springframework.lang.Nullable;
67

78
@Getter
89
public enum Mode {
910

10-
WEB("WEB", "WEB", "CAWI"),TEL("TEL", "ENQ", "CATI"), F2F("F2F", "ENQ", "CAPI"),OTHER("OTHER", "", ""),PAPER("PAPER", "", "PAPI");
11+
WEB("WEB", "WEB", "CAWI"),
12+
TEL("TEL", "ENQ", "CATI"),
13+
F2F("F2F", "ENQ", "CAPI"),
14+
OTHER("OTHER", "", ""),
15+
PAPER("PAPER", "", "PAPI");
1116

1217
@Nullable
1318
@Schema(nullable = true, type = "string", allowableValues = { "WEB", "TEL", "F2F", "PAPER", "OTHER" })
@@ -23,6 +28,19 @@ public enum Mode {
2328
this.jsonName = jsonName;
2429
}
2530

31+
@JsonCreator
32+
public static Mode fromString(String value) {
33+
if (value == null) return null;
34+
35+
for (Mode m : values()) {
36+
if (value.equalsIgnoreCase(m.modeName) ||
37+
value.equalsIgnoreCase(m.jsonName)) {
38+
return m;
39+
}
40+
}
41+
throw new IllegalArgumentException("Invalid Mode: " + value);
42+
}
43+
2644
public static Mode getEnumFromModeName(String modeName) {
2745
if (modeName == null){
2846
return null;

src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,18 @@
2121
@AllArgsConstructor
2222
public class SurveyUnitModel {
2323

24-
25-
private String questionnaireId;
24+
// New name of questionnaireId
25+
private String collectionInstrumentId;
26+
// To be removed
2627
private String campaignId;
2728
private String interrogationId;
28-
private String idUE;
29+
// New name of idUE
30+
private String usualSurveyUnitId;
31+
private String technicalSurveyUnitId;
32+
// Represents the major version of the "modèle filière"
33+
private String majorModelVersion;
2934
private DataState state;
3035
private Mode mode;
31-
private String contextualId;
3236
private Boolean isCapturedIndirectly;
3337
private LocalDateTime validationDate;
3438
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'hh:mm")

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88

99
public interface RawResponsePersistencePort {
1010

11-
List<RawResponse> findRawResponses(String questionnaireId, Mode mode, List<String> interrogationIdList);
12-
13-
11+
List<RawResponse> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
1412
void updateProcessDates(String collectionInstrumentId, Set<String> interrogationIds);
1513
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ private Map<String, Set<String>> getProcessedIdsMap(List<SurveyUnitModel> survey
178178
Map<String, Set<String>> processedInterrogationIdsPerQuestionnaire = new HashMap<>();
179179
surveyUnitModels.forEach(model ->
180180
processedInterrogationIdsPerQuestionnaire
181-
.computeIfAbsent(model.getQuestionnaireId(), k -> new HashSet<>())
181+
.computeIfAbsent(model.getCollectionInstrumentId(), k -> new HashSet<>())
182182
.add(model.getInterrogationId())
183183
);
184184
return processedInterrogationIdsPerQuestionnaire;
@@ -200,11 +200,10 @@ public List<SurveyUnitModel> convertRawData(List<LunaticJsonRawDataModel> rawDat
200200

201201
SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder()
202202
.campaignId(rawData.campaignId())
203-
.questionnaireId(rawData.questionnaireId())
203+
.collectionInstrumentId(rawData.questionnaireId())
204204
.mode(rawData.mode())
205205
.interrogationId(rawData.interrogationId())
206-
.idUE(rawData.idUE())
207-
.contextualId(contextualId)
206+
.usualSurveyUnitId(rawData.idUE())
208207
.validationDate(validationDate)
209208
.isCapturedIndirectly(isCapturedIndirectly)
210209
.state(dataState)

0 commit comments

Comments
 (0)