Skip to content

Commit f89d126

Browse files
committed
get RawResponseData + LunaticJsonRawData by InterrogationId
1 parent 1940fd6 commit f89d126

20 files changed

+286
-2
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package fr.insee.genesis.controller.rest;
2+
3+
import fr.insee.genesis.domain.model.surveyunit.rawdata.CombinedRawData;
4+
import fr.insee.genesis.domain.service.rawdata.CombinedRawDataService;
5+
import fr.insee.genesis.exceptions.GenesisException;
6+
import io.swagger.v3.oas.annotations.Operation;
7+
import lombok.extern.slf4j.Slf4j;
8+
import org.springframework.http.ResponseEntity;
9+
import org.springframework.security.access.prepost.PreAuthorize;
10+
import org.springframework.stereotype.Controller;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.RequestParam;
14+
15+
@Slf4j
16+
@Controller
17+
@RequestMapping(path = "/combined-raw-data" )
18+
public class CombinedRawDataController {
19+
20+
private static final String INTERROGATION_ID = "interrogationId";
21+
private final CombinedRawDataService combinedRawDataService;
22+
23+
public CombinedRawDataController(CombinedRawDataService combinedRawDataService) {
24+
this.combinedRawDataService = combinedRawDataService;
25+
}
26+
27+
@Operation(summary = "Retrieve combined raw responses and Lunatic raw data for a given interrogationId")
28+
@GetMapping
29+
@PreAuthorize("hasAnyRole('ADMIN', 'USER_PLATINE')")
30+
public ResponseEntity<CombinedRawData> getCombinetRawData(
31+
@RequestParam(INTERROGATION_ID) String interrogationId
32+
){CombinedRawData data = combinedRawDataService.getCombinedRawDataByInterrogationId(interrogationId);
33+
34+
if (data.rawResponses().isEmpty()) {
35+
return ResponseEntity.notFound().build();
36+
}
37+
38+
return ResponseEntity.ok(data);
39+
}
40+
41+
}
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 CombinedRawData(List<RawResponse> rawResponses,
6+
List<LunaticJsonRawDataModel> lunaticRawData) {
7+
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public interface LunaticJsonRawDataApiPort {
2828
long countResponsesByQuestionnaireId(String campaignId);
2929
Page<LunaticJsonRawDataModel> findRawDataByCampaignIdAndDate(String campaignId, Instant startDt, Instant endDt, Pageable pageable);
3030

31+
List<LunaticJsonRawDataModel> getRawDataByInterrogationId(String interrogationId);
32+
3133
@Deprecated(since = "1.13.0")
3234
DataProcessResult processRawData(String campaignName, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException;
3335

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
public interface RawResponseApiPort {
1414

1515
List<RawResponse> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
16+
List<RawResponse> getRawResponsesByInterrogationID(String interrogationId);
1617
DataProcessResult processRawResponses(String collectionInstrumentId, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException;
1718
DataProcessResult processRawResponses(String collectionInstrumentId) throws GenesisException;
1819
List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses, VariablesMap variablesMap);

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> findRawDataByInterrogationID(String interrogationId);
1819
List<LunaticJsonRawDataModel> getAllUnprocessedData();
1920
void updateProcessDates(String campaignId, Set<String> interrogationIds);
2021
Set<String> findDistinctQuestionnaireIds();

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
public interface RawResponsePersistencePort {
1010

1111
List<RawResponse> findRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
12+
List<RawResponse> findRawResponsesByInterrogationID(String interrogationId);
1213
void updateProcessDates(String collectionInstrumentId, Set<String> interrogationIds);
1314
List<String> getUnprocessedCollectionIds();
1415
Set<String> findUnprocessedInterrogationIdsByCollectionInstrumentId(String collectionInstrumentId);

src/main/java/fr/insee/genesis/domain/service/metadata/QuestionnaireMetadataService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public MetadataModel loadAndSaveIfNotExists(String campaignName, String collecti
5858
MetadataModel metadataModel =
5959
readMetadatas(campaignName, mode.getModeName(), fileUtils, errors);
6060

61-
saveMetadata(questionnaireId.toUpperCase(), mode, metadataModel);
61+
saveMetadata(collectionInstrumentId.toUpperCase(), mode, metadataModel);
6262

6363
return metadataModel;
6464
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package fr.insee.genesis.domain.service.rawdata;
2+
3+
import fr.insee.genesis.domain.model.surveyunit.rawdata.CombinedRawData;
4+
import fr.insee.genesis.domain.model.surveyunit.rawdata.LunaticJsonRawDataModel;
5+
import fr.insee.genesis.domain.model.surveyunit.rawdata.RawResponse;
6+
import fr.insee.genesis.domain.ports.spi.LunaticJsonRawDataPersistencePort;
7+
import fr.insee.genesis.domain.ports.spi.RawResponsePersistencePort;
8+
import lombok.extern.slf4j.Slf4j;
9+
import org.springframework.beans.factory.annotation.Qualifier;
10+
import org.springframework.stereotype.Service;
11+
12+
import java.util.List;
13+
14+
@Service
15+
@Slf4j
16+
public class CombinedRawDataService {
17+
18+
@Qualifier("lunaticJsonMongoAdapterNew")
19+
private final LunaticJsonRawDataPersistencePort lunaticJsonRawDataPersistencePort;
20+
@Qualifier("rawResponseMongoAdapter")
21+
private final RawResponsePersistencePort rawResponsePersistencePort;
22+
23+
public CombinedRawDataService(LunaticJsonRawDataPersistencePort lunaticJsonRawDataPersistencePort, RawResponsePersistencePort rawResponsePersistencePort) {
24+
this.lunaticJsonRawDataPersistencePort = lunaticJsonRawDataPersistencePort;
25+
this.rawResponsePersistencePort = rawResponsePersistencePort;
26+
}
27+
28+
public CombinedRawData getCombinedRawDataByInterrogationId(String interrogationId) {
29+
List<RawResponse> rawResponses = rawResponsePersistencePort.findRawResponsesByInterrogationID(interrogationId);
30+
List<LunaticJsonRawDataModel> lunaticRawData = lunaticJsonRawDataPersistencePort.findRawDataByInterrogationID(interrogationId);
31+
32+
return new CombinedRawData(rawResponses, lunaticRawData);
33+
}
34+
35+
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ public List<LunaticJsonRawDataModel> getRawData(String campaignName, Mode mode,
9999
return lunaticJsonRawDataPersistencePort.findRawData(campaignName, mode, interrogationIdList);
100100
}
101101

102+
@Override
103+
public List<LunaticJsonRawDataModel> getRawDataByInterrogationId(String interrogationId) {
104+
return lunaticJsonRawDataPersistencePort.findRawDataByInterrogationID(interrogationId);
105+
}
106+
102107
@Override
103108
@Deprecated(since = "1.13.0")
104109
public DataProcessResult processRawData(String campaignName, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ public List<RawResponse> getRawResponses(String collectionInstrumentId, Mode mod
7171
return rawResponsePersistencePort.findRawResponses(collectionInstrumentId,mode,interrogationIdList);
7272
}
7373

74+
@Override
75+
public List<RawResponse> getRawResponsesByInterrogationID(String interrogationId) {
76+
return rawResponsePersistencePort.findRawResponsesByInterrogationID(interrogationId);
77+
}
78+
7479
@Override
7580
public DataProcessResult processRawResponses(String collectionInstrumentId, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException {
7681
int dataCount=0;

0 commit comments

Comments
 (0)