Skip to content

Commit 265347c

Browse files
committed
refactors
1 parent 65517c9 commit 265347c

File tree

9 files changed

+35
-32
lines changed

9 files changed

+35
-32
lines changed
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package fr.insee.genesis.controller.dto.rawdata;
22

33
import lombok.Builder;
4-
import lombok.Data;
54

65
@Builder
7-
@Data
8-
public class LunaticJsonRawDataUnprocessedDto {
9-
private String campaignId;
10-
private String idUE;
11-
}
6+
public record LunaticJsonRawDataUnprocessedDto(String campaignId, String idUE){}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public ResponseEntity<Object> processJsonRawData(
235235
@RequestParam("questionnaireId") String questionnaireId,
236236
@RequestBody List<String> idUEList
237237
){
238-
log.info("Try to get process raw JSON datas for campaign {} and {} idUEs", campaignName, idUEList.size());
238+
log.info("Try to process raw JSON datas for campaign {} and {} idUEs", campaignName, idUEList.size());
239239

240240
int dataCount = 0;
241241
List<GenesisError> errors = new ArrayList<>();

src/main/java/fr/insee/genesis/controller/utils/ControllerUtils.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,17 @@ public ControllerUtils(FileUtils fileUtils) {
2121
this.fileUtils = fileUtils;
2222
}
2323

24+
25+
/**
26+
* If a mode is specified, we treat only this mode.
27+
* If no mode is specified, we treat all modes in the campaign.
28+
* If no mode is specified and no specs are found, we return an error
29+
* @param campaign campaign id to get modes
30+
* @param modeSpecified a Mode to use, null if we want all modes available
31+
* @return a list with the mode in modeSpecified or all modes if null
32+
* @throws GenesisException if error in specs structure
33+
*/
2434
public List<Mode> getModesList(String campaign, Mode modeSpecified) throws GenesisException {
25-
// If a mode is specified, we treat only this mode.
26-
// If no mode is specified, we treat all modes in the campaign.
27-
// If no mode is specified and no specs are found, we return an error
2835
if (modeSpecified != null){
2936
return Collections.singletonList(modeSpecified);
3037
}

src/main/java/fr/insee/genesis/domain/model/variabletype/VariableTypeModel.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
import fr.insee.bpm.metadata.model.VariableType;
44
import fr.insee.genesis.domain.model.surveyunit.Mode;
55
import lombok.Builder;
6-
import lombok.Data;
76

87
import java.util.Map;
98

10-
@Data
119
@Builder
12-
public class VariableTypeModel {
13-
private String campaignId;
14-
private String questionnaireId;
15-
private Mode mode;
16-
private Map<String, VariableType> variables;
17-
}
10+
public record VariableTypeModel (
11+
String campaignId,
12+
String questionnaireId,
13+
Mode mode,
14+
Map<String, VariableType> variables
15+
){}

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import fr.insee.genesis.domain.ports.spi.LunaticJsonPersistancePort;
1717
import fr.insee.genesis.domain.utils.LoopIdentifier;
1818
import fr.insee.genesis.infrastructure.document.rawdata.LunaticJsonDataDocument;
19+
import lombok.extern.slf4j.Slf4j;
1920
import org.springframework.beans.factory.annotation.Autowired;
2021
import org.springframework.beans.factory.annotation.Qualifier;
2122
import org.springframework.stereotype.Service;
@@ -27,6 +28,7 @@
2728
import java.util.Set;
2829

2930
@Service
31+
@Slf4j
3032
public class LunaticJsonRawDataService implements LunaticJsonRawDataApiPort {
3133
@Qualifier("lunaticJsonMongoAdapter")
3234
private final LunaticJsonPersistancePort lunaticJsonPersistancePort;
@@ -97,9 +99,7 @@ public List<SurveyUnitModel> parseRawData(
9799
CollectedVariable collectedVariable = CollectedVariable.collectedVariableBuilder()
98100
.idVar(variableName)
99101
.values(new ArrayList<>())
100-
.idLoop(variablesMap.getVariable(variableName) == null ?
101-
Constants.ROOT_GROUP_NAME : //TODO What do we do if null ? Exception ?
102-
variablesMap.getVariable(variableName).getGroupName())
102+
.idLoop(getIdLoop(variablesMap, variableName))
103103
.idParent(LoopIdentifier.getRelatedVariableName(variableName, variablesMap))
104104
.build();
105105

@@ -113,6 +113,14 @@ public List<SurveyUnitModel> parseRawData(
113113
return surveyUnitModels;
114114
}
115115

116+
private static String getIdLoop(VariablesMap variablesMap, String variableName) {
117+
if (variablesMap.getVariable(variableName) == null){
118+
log.warn("Variable {} not present in metadatas, assigning to {}", variableName, Constants.ROOT_GROUP_NAME);
119+
return Constants.ROOT_GROUP_NAME;
120+
}
121+
return variablesMap.getVariable(variableName).getGroupName();
122+
}
123+
116124
@Override
117125
public void updateProcessDates(List<SurveyUnitModel> surveyUnitModels) {
118126
Set<String> campaignIds = new HashSet<>();

src/main/java/fr/insee/genesis/domain/service/variabletype/VariableTypeService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void saveMetadatas(String campaignId, String questionnaireId, Mode mode,
3333

3434
for(String variableName : variablesMap.getVariables().keySet()){
3535
Variable bpmVariable = variablesMap.getVariable(variableName);
36-
variableTypeModel.getVariables().put(variableName,bpmVariable.getType());
36+
variableTypeModel.variables().put(variableName,bpmVariable.getType());
3737
}
3838

3939
variableTypePersistancePort.save(variableTypeModel);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public VariableTypeMongoAdapter(VariableTypeMongoDBRepository variableTypeMongoD
2929
@Override
3030
public void save(VariableTypeModel variableTypeModel) {
3131
mongoTemplate.update(VariableTypeDocument.class)
32-
.matching(Query.query(Criteria.where("campaignId").is(variableTypeModel.getCampaignId())))
32+
.matching(Query.query(Criteria.where("campaignId").is(variableTypeModel.campaignId())))
3333
.replaceWith(VariableTypeDocumentMapper.INSTANCE.modelToDocument(variableTypeModel))
3434
.withOptions(FindAndReplaceOptions.options().upsert())
3535
.findAndReplace();

src/main/java/fr/insee/genesis/infrastructure/document/rawdata/LunaticJsonDataDocument.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import fr.insee.genesis.Constants;
44
import fr.insee.genesis.domain.model.surveyunit.Mode;
5-
import lombok.AllArgsConstructor;
65
import lombok.Data;
7-
import lombok.NoArgsConstructor;
86
import org.bson.types.ObjectId;
97
import org.springframework.data.annotation.Id;
108
import org.springframework.data.mongodb.core.mapping.Document;
@@ -13,10 +11,8 @@
1311
import java.util.Map;
1412

1513
@Data
16-
@NoArgsConstructor
17-
@AllArgsConstructor
1814
@Document(collection = Constants.MONGODB_LUNATIC_RAWDATA_COLLECTION_NAME)
19-
public class LunaticJsonDataDocument {
15+
public class LunaticJsonDataDocument { //TODO try to use record
2016
@Id
2117
private ObjectId id;
2218
private String campaignId;

src/test/java/fr/insee/genesis/controller/rest/responses/ResponseControllerTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import fr.insee.genesis.domain.service.surveyunit.SurveyUnitQualityService;
2121
import fr.insee.genesis.domain.service.surveyunit.SurveyUnitService;
2222
import fr.insee.genesis.domain.service.variabletype.VariableTypeService;
23-
import fr.insee.genesis.exceptions.GenesisException;
2423
import fr.insee.genesis.infrastructure.document.rawdata.LunaticJsonDataDocument;
2524
import fr.insee.genesis.infrastructure.utils.FileUtils;
2625
import fr.insee.genesis.stubs.ConfigStub;
@@ -219,8 +218,8 @@ void getUnprocessedDataTest(){
219218

220219
//THEN
221220
Assertions.assertThat(dtos).isNotNull().isNotEmpty().hasSize(1);
222-
Assertions.assertThat(dtos.getFirst().getCampaignId()).isEqualTo(campaignId);
223-
Assertions.assertThat(dtos.getFirst().getIdUE()).isEqualTo(idUE);
221+
Assertions.assertThat(dtos.getFirst().campaignId()).isEqualTo(campaignId);
222+
Assertions.assertThat(dtos.getFirst().idUE()).isEqualTo(idUE);
224223
}
225224

226225
@Test
@@ -241,7 +240,7 @@ void getUnprocessedDataTest_processDate_present(){
241240
//raw data process
242241
//json
243242
@Test
244-
void processJsonRawDataTest() throws GenesisException {
243+
void processJsonRawDataTest() {
245244
//GIVEN
246245
lunaticJsonPersistanceStub.getMongoStub().clear();
247246
surveyUnitPersistencePortStub.getMongoStub().clear();

0 commit comments

Comments
 (0)