Skip to content

Commit d1281a0

Browse files
committed
add modifications after CR
1 parent b850c95 commit d1281a0

File tree

16 files changed

+111
-88
lines changed

16 files changed

+111
-88
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package fr.insee.genesis.controller.dto.rawdata;
2+
3+
import fr.insee.genesis.domain.model.surveyunit.rawdata.LunaticJsonRawDataModel;
4+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
5+
6+
import java.util.List;
7+
8+
public record CombinedRawDataDto(
9+
List<RawResponseModel> rawResponseModels,
10+
List<LunaticJsonRawDataModel> lunaticRawDataModels
11+
) {
12+
}
13+

src/main/java/fr/insee/genesis/controller/rest/CombinedRawDataController.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package fr.insee.genesis.controller.rest;
22

3-
import fr.insee.genesis.domain.model.surveyunit.rawdata.CombinedRawData;
3+
import fr.insee.genesis.controller.dto.rawdata.CombinedRawDataDto;
44
import fr.insee.genesis.domain.service.rawdata.CombinedRawDataService;
5-
import fr.insee.genesis.exceptions.GenesisException;
65
import io.swagger.v3.oas.annotations.Operation;
76
import lombok.extern.slf4j.Slf4j;
87
import org.springframework.http.ResponseEntity;
@@ -27,11 +26,12 @@ public CombinedRawDataController(CombinedRawDataService combinedRawDataService)
2726
@Operation(summary = "Retrieve combined raw responses and Lunatic raw data for a given interrogationId")
2827
@GetMapping
2928
@PreAuthorize("hasAnyRole('ADMIN', 'USER_PLATINE')")
30-
public ResponseEntity<CombinedRawData> getCombinetRawData(
29+
public ResponseEntity<CombinedRawDataDto> getCombinetRawData(
3130
@RequestParam(INTERROGATION_ID) String interrogationId
32-
){CombinedRawData data = combinedRawDataService.getCombinedRawDataByInterrogationId(interrogationId);
31+
){
32+
CombinedRawDataDto data = combinedRawDataService.getCombinedRawDataByInterrogationId(interrogationId);
3333

34-
if (data.rawResponses().isEmpty()) {
34+
if (data.rawResponseModels().isEmpty()) {
3535
return ResponseEntity.notFound().build();
3636
}
3737

src/main/java/fr/insee/genesis/domain/model/surveyunit/rawdata/CombinedRawData.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/main/java/fr/insee/genesis/domain/model/surveyunit/rawdata/RawResponse.java renamed to src/main/java/fr/insee/genesis/domain/model/surveyunit/rawdata/RawResponseModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.time.LocalDateTime;
77
import java.util.Map;
88

9-
public record RawResponse(
9+
public record RawResponseModel(
1010
ObjectId id,
1111
String interrogationId,
1212
String collectionInstrumentId,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package fr.insee.genesis.domain.model.surveyunit.rawdata;
2+
3+
import java.util.List;
4+
5+
public record combinedRawDataModel(List<RawResponseModel> rawResponseModels,
6+
List<LunaticJsonRawDataModel> lunaticRawDataModels) {
7+
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
import fr.insee.genesis.domain.model.surveyunit.Mode;
55
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
66
import fr.insee.genesis.domain.model.surveyunit.rawdata.DataProcessResult;
7-
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
7+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
88
import fr.insee.genesis.exceptions.GenesisError;
99
import fr.insee.genesis.exceptions.GenesisException;
1010

1111
import java.util.List;
1212

1313
public interface RawResponseApiPort {
1414

15-
List<RawResponse> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
16-
List<RawResponse> getRawResponsesByInterrogationID(String interrogationId);
15+
List<RawResponseModel> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
16+
List<RawResponseModel> getRawResponsesByInterrogationID(String interrogationId);
1717
DataProcessResult processRawResponses(String collectionInstrumentId, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException;
1818
DataProcessResult processRawResponses(String collectionInstrumentId) throws GenesisException;
19-
List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses, VariablesMap variablesMap);
19+
List<SurveyUnitModel> convertRawResponse(List<RawResponseModel> rawResponses, VariablesMap variablesMap);
2020
List<String> getUnprocessedCollectionInstrumentIds();
2121
void updateProcessDates(List<SurveyUnitModel> surveyUnitModels);
2222

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package fr.insee.genesis.domain.ports.spi;
22

33
import fr.insee.genesis.domain.model.surveyunit.Mode;
4-
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
4+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
55

66
import java.util.List;
77
import java.util.Set;
88

99
public interface RawResponsePersistencePort {
1010

11-
List<RawResponse> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
12-
List<RawResponse> findRawResponsesByInterrogationID(String interrogationId);
11+
List<RawResponseModel> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
12+
List<RawResponseModel> findRawResponsesByInterrogationID(String interrogationId);
1313
void updateProcessDates(String collectionInstrumentId, Set<String> interrogationIds);
1414
List<String> getUnprocessedCollectionIds();
1515
Set<String> findUnprocessedInterrogationIdsByCollectionInstrumentId(String collectionInstrumentId);
Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package fr.insee.genesis.domain.service.rawdata;
22

3-
import fr.insee.genesis.domain.model.surveyunit.rawdata.CombinedRawData;
3+
import fr.insee.genesis.controller.dto.rawdata.CombinedRawDataDto;
44
import fr.insee.genesis.domain.model.surveyunit.rawdata.LunaticJsonRawDataModel;
5-
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
5+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
66
import fr.insee.genesis.domain.ports.spi.LunaticJsonRawDataPersistencePort;
77
import fr.insee.genesis.domain.ports.spi.RawResponsePersistencePort;
88
import lombok.extern.slf4j.Slf4j;
@@ -15,7 +15,7 @@
1515
@Slf4j
1616
public class CombinedRawDataService {
1717

18-
@Qualifier("lunaticJsonMongoAdapterNew")
18+
@Qualifier("lunaticJsonMongoAdapter")
1919
private final LunaticJsonRawDataPersistencePort lunaticJsonRawDataPersistencePort;
2020
@Qualifier("rawResponseMongoAdapter")
2121
private final RawResponsePersistencePort rawResponsePersistencePort;
@@ -25,11 +25,19 @@ public CombinedRawDataService(LunaticJsonRawDataPersistencePort lunaticJsonRawDa
2525
this.rawResponsePersistencePort = rawResponsePersistencePort;
2626
}
2727

28-
public CombinedRawData getCombinedRawDataByInterrogationId(String interrogationId) {
29-
List<RawResponse> rawResponses = rawResponsePersistencePort.findRawResponsesByInterrogationID(interrogationId);
30-
List<LunaticJsonRawDataModel> lunaticRawData = lunaticJsonRawDataPersistencePort.findRawDataByInterrogationID(interrogationId);
28+
public CombinedRawDataDto getCombinedRawDataByInterrogationId(String interrogationId) {
3129

32-
return new CombinedRawData(rawResponses, lunaticRawData);
30+
List<RawResponseModel> rawResponseModels =
31+
rawResponsePersistencePort.findRawResponsesByInterrogationID(interrogationId);
32+
33+
List<LunaticJsonRawDataModel> lunaticRawDataModels =
34+
lunaticJsonRawDataPersistencePort.findRawDataByInterrogationID(interrogationId);
35+
36+
return new CombinedRawDataDto(
37+
rawResponseModels,
38+
lunaticRawDataModels
39+
);
3340
}
3441

42+
3543
}

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

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
1111
import fr.insee.genesis.domain.model.surveyunit.VariableModel;
1212
import fr.insee.genesis.domain.model.surveyunit.rawdata.DataProcessResult;
13-
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
13+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
1414
import fr.insee.genesis.domain.ports.api.RawResponseApiPort;
1515
import fr.insee.genesis.domain.ports.spi.RawResponsePersistencePort;
1616
import fr.insee.genesis.domain.ports.spi.SurveyUnitQualityToolPort;
@@ -67,12 +67,12 @@ public RawResponseService(ControllerUtils controllerUtils, QuestionnaireMetadata
6767
}
6868

6969
@Override
70-
public List<RawResponse> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList) {
70+
public List<RawResponseModel> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList) {
7171
return rawResponsePersistencePort.findRawResponses(collectionInstrumentId,mode,interrogationIdList);
7272
}
7373

7474
@Override
75-
public List<RawResponse> getRawResponsesByInterrogationID(String interrogationId) {
75+
public List<RawResponseModel> getRawResponsesByInterrogationID(String interrogationId) {
7676
return rawResponsePersistencePort.findRawResponsesByInterrogationID(interrogationId);
7777
}
7878

@@ -94,10 +94,10 @@ public DataProcessResult processRawResponses(String collectionInstrumentId, List
9494
int maxIndex = Math.min(interrogationIdListForMode.size(), config.getRawDataProcessingBatchSize());
9595
List<String> interrogationIdToProcess = interrogationIdListForMode.subList(0, maxIndex);
9696

97-
List<RawResponse> rawResponses = getRawResponses(collectionInstrumentId, mode, interrogationIdToProcess);
97+
List<RawResponseModel> rawResponseModels = getRawResponses(collectionInstrumentId, mode, interrogationIdToProcess);
9898

9999
List<SurveyUnitModel> surveyUnitModels = convertRawResponse(
100-
rawResponses,
100+
rawResponseModels,
101101
variablesMap
102102
);
103103

@@ -187,9 +187,9 @@ public DataProcessResult processRawResponses(String collectionInstrumentId) thro
187187

188188
private List<SurveyUnitModel> getConvertedSurveyUnits(String collectionInstrumentId, Mode mode, List<String> interrogationIdListForMode, int maxIndex, VariablesMap variablesMap) {
189189
List<String> interrogationIdToProcess = interrogationIdListForMode.subList(0, maxIndex);
190-
List<RawResponse> rawResponses = getRawResponses(collectionInstrumentId, mode, interrogationIdToProcess);
190+
List<RawResponseModel> rawResponseModels = getRawResponses(collectionInstrumentId, mode, interrogationIdToProcess);
191191
return convertRawResponse(
192-
rawResponses,
192+
rawResponseModels,
193193
variablesMap
194194
);
195195
}
@@ -207,47 +207,47 @@ private VariablesMap getVariablesMap(String collectionInstrumentId, Mode mode, L
207207
}
208208

209209
@Override
210-
public List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses, VariablesMap variablesMap) {
210+
public List<SurveyUnitModel> convertRawResponse(List<RawResponseModel> rawResponseModels, VariablesMap variablesMap) {
211211
//Convert to genesis model
212212
List<SurveyUnitModel> surveyUnitModels = new ArrayList<>();
213213
//For each possible data state (we receive COLLECTED or EDITED)
214214
for(DataState dataState : List.of(DataState.COLLECTED,DataState.EDITED)){
215-
for (RawResponse rawResponse : rawResponses) {
215+
for (RawResponseModel rawResponseModel : rawResponseModels) {
216216
//Get optional fields
217-
Boolean isCapturedIndirectly = getIsCapturedIndirectly(rawResponse);
218-
LocalDateTime validationDate = getValidationDate(rawResponse);
219-
String usualSurveyUnitId = getStringFieldInPayload(rawResponse,"usualSurveyUnitId");
220-
String majorModelVersion = getStringFieldInPayload(rawResponse, "majorModelVersion");
217+
Boolean isCapturedIndirectly = getIsCapturedIndirectly(rawResponseModel);
218+
LocalDateTime validationDate = getValidationDate(rawResponseModel);
219+
String usualSurveyUnitId = getStringFieldInPayload(rawResponseModel,"usualSurveyUnitId");
220+
String majorModelVersion = getStringFieldInPayload(rawResponseModel, "majorModelVersion");
221221

222222
SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder()
223-
.collectionInstrumentId(rawResponse.collectionInstrumentId())
223+
.collectionInstrumentId(rawResponseModel.collectionInstrumentId())
224224
.majorModelVersion(majorModelVersion)
225-
.mode(rawResponse.mode())
226-
.interrogationId(rawResponse.interrogationId())
225+
.mode(rawResponseModel.mode())
226+
.interrogationId(rawResponseModel.interrogationId())
227227
.usualSurveyUnitId(usualSurveyUnitId)
228228
.validationDate(validationDate)
229229
.isCapturedIndirectly(isCapturedIndirectly)
230230
.state(dataState)
231-
.fileDate(rawResponse.recordDate())
231+
.fileDate(rawResponseModel.recordDate())
232232
.recordDate(LocalDateTime.now())
233233
.collectedVariables(new ArrayList<>())
234234
.externalVariables(new ArrayList<>())
235235
.build();
236236

237237
//Data collected variables conversion
238-
convertRawDataCollectedVariables(rawResponse, surveyUnitModel, dataState, variablesMap);
238+
convertRawDataCollectedVariables(rawResponseModel, surveyUnitModel, dataState, variablesMap);
239239

240240
//External variables conversion into COLLECTED document
241241
if(dataState == DataState.COLLECTED){
242-
convertRawDataExternalVariables(rawResponse, surveyUnitModel, variablesMap);
242+
convertRawDataExternalVariables(rawResponseModel, surveyUnitModel, variablesMap);
243243
}
244244

245245
boolean hasNoVariable = surveyUnitModel.getCollectedVariables().isEmpty()
246246
&& surveyUnitModel.getExternalVariables().isEmpty();
247247

248248
if(hasNoVariable){
249249
if(surveyUnitModel.getState() == DataState.COLLECTED){
250-
log.warn("No collected or external variable for interrogation {}, raw data is ignored.", rawResponse.interrogationId());
250+
log.warn("No collected or external variable for interrogation {}, raw data is ignored.", rawResponseModel.interrogationId());
251251
}
252252
continue;// don't add suModel
253253
}
@@ -305,29 +305,29 @@ private void sendProcessedIdsToQualityTool(List<SurveyUnitModel> surveyUnitModel
305305
}
306306
}
307307

308-
private static Boolean getIsCapturedIndirectly(RawResponse rawResponse) {
308+
private static Boolean getIsCapturedIndirectly(RawResponseModel rawResponseModel) {
309309
try{
310-
return rawResponse.payload().get("isCapturedIndirectly") == null ? null :
311-
Boolean.parseBoolean(rawResponse.payload().get("isCapturedIndirectly").toString());
310+
return rawResponseModel.payload().get("isCapturedIndirectly") == null ? null :
311+
Boolean.parseBoolean(rawResponseModel.payload().get("isCapturedIndirectly").toString());
312312
}catch(Exception e){
313313
log.warn("Exception when parsing isCapturedIndirectly : {}",e.toString());
314314
return Boolean.FALSE;
315315
}
316316
}
317317

318-
private static LocalDateTime getValidationDate(RawResponse rawResponse) {
318+
private static LocalDateTime getValidationDate(RawResponseModel rawResponseModel) {
319319
try{
320-
return rawResponse.payload().get("validationDate") == null ? null :
321-
LocalDateTime.parse(rawResponse.payload().get("validationDate").toString());
320+
return rawResponseModel.payload().get("validationDate") == null ? null :
321+
LocalDateTime.parse(rawResponseModel.payload().get("validationDate").toString());
322322
}catch(Exception e){
323323
log.warn("Exception when parsing validation date : {}",e.toString());
324324
return null;
325325
}
326326
}
327327

328-
private static String getStringFieldInPayload(RawResponse rawResponse, String field) {
328+
private static String getStringFieldInPayload(RawResponseModel rawResponseModel, String field) {
329329
try{
330-
return rawResponse.payload().get(field).toString();
330+
return rawResponseModel.payload().get(field).toString();
331331
}catch(Exception e){
332332
log.warn("Exception when parsing {} : {}",field, e.toString());
333333
return null;
@@ -336,12 +336,12 @@ private static String getStringFieldInPayload(RawResponse rawResponse, String fi
336336

337337
@SuppressWarnings("unchecked")
338338
private void convertRawDataCollectedVariables(
339-
RawResponse rawResponse,
339+
RawResponseModel rawResponseModel,
340340
SurveyUnitModel dstSurveyUnitModel,
341341
DataState dataState,
342342
VariablesMap variablesMap
343343
) {
344-
Map<String, Object> dataMap = rawResponse.payload();
344+
Map<String, Object> dataMap = rawResponseModel.payload();
345345
dataMap = (Map<String, Object>) dataMap.get("data");
346346

347347
dataMap = (Map<String, Object>)dataMap.get("COLLECTED");
@@ -350,7 +350,7 @@ private void convertRawDataCollectedVariables(
350350
Map<String,Object> collectedMap = JsonUtils.asMap(dataMap);
351351
if (collectedMap == null || collectedMap.isEmpty()){
352352
if(dataState.equals(DataState.COLLECTED)) {
353-
log.warn("No collected data for interrogation {}", rawResponse.interrogationId());
353+
log.warn("No collected data for interrogation {}", rawResponseModel.interrogationId());
354354
}
355355
return;
356356
}
@@ -420,11 +420,11 @@ private static String getIdLoop(VariablesMap variablesMap, String variableName)
420420

421421
@SuppressWarnings("unchecked")
422422
private static void convertRawDataExternalVariables(
423-
RawResponse rawResponse,
423+
RawResponseModel rawResponseModel,
424424
SurveyUnitModel dstSurveyUnitModel,
425425
VariablesMap variablesMap
426426
) {
427-
Map<String, Object> dataMap = rawResponse.payload();
427+
Map<String, Object> dataMap = rawResponseModel.payload();
428428
dataMap = (Map<String, Object>) dataMap.get("data");
429429

430430

src/main/java/fr/insee/genesis/infrastructure/adapter/RawResponseMongoAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import fr.insee.genesis.Constants;
44
import fr.insee.genesis.domain.model.surveyunit.Mode;
5-
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
5+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponseModel;
66
import fr.insee.genesis.domain.ports.spi.RawResponsePersistencePort;
77
import fr.insee.genesis.infrastructure.document.rawdata.RawResponseDocument;
88
import fr.insee.genesis.infrastructure.mappers.RawResponseDocumentMapper;
@@ -34,13 +34,13 @@ public RawResponseMongoAdapter(RawResponseRepository repository, MongoTemplate m
3434
}
3535

3636
@Override
37-
public List<RawResponse> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList) {
37+
public List<RawResponseModel> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList) {
3838
List<RawResponseDocument> rawDataDocs = repository.findByCollectionInstrumentIdAndModeAndInterrogationIdList(collectionInstrumentId, mode.getJsonName(), interrogationIdList);
3939
return RawResponseDocumentMapper.INSTANCE.listDocumentToListModel(rawDataDocs);
4040
}
4141

4242
@Override
43-
public List<RawResponse> findRawResponsesByInterrogationID(String interrogationId) {
43+
public List<RawResponseModel> findRawResponsesByInterrogationID(String interrogationId) {
4444
List<RawResponseDocument> rawResponseDocumentList = repository.findByInterrogationId(interrogationId);
4545
return RawResponseDocumentMapper.INSTANCE.listDocumentToListModel(rawResponseDocumentList);
4646
}

0 commit comments

Comments
 (0)