Skip to content

Commit 4d7e2b7

Browse files
committed
feat: Move method in service
1 parent ae84952 commit 4d7e2b7

File tree

3 files changed

+23
-18
lines changed

3 files changed

+23
-18
lines changed

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

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import fr.insee.genesis.controller.dto.SurveyUnitInputDto;
1212
import fr.insee.genesis.controller.dto.SurveyUnitQualityToolDto;
1313
import fr.insee.genesis.controller.dto.SurveyUnitSimplified;
14-
import fr.insee.genesis.controller.services.MetadataService;
1514
import fr.insee.genesis.controller.rest.CommonApiResponse;
15+
import fr.insee.genesis.controller.services.MetadataService;
1616
import fr.insee.genesis.controller.sources.xml.LunaticXmlCampaign;
1717
import fr.insee.genesis.controller.sources.xml.LunaticXmlDataParser;
1818
import fr.insee.genesis.controller.sources.xml.LunaticXmlDataSequentialParser;
@@ -57,7 +57,6 @@
5757
import java.nio.file.Paths;
5858
import java.time.LocalDateTime;
5959
import java.util.ArrayList;
60-
import java.util.HashSet;
6160
import java.util.List;
6261
import java.util.Set;
6362
import java.util.stream.Stream;
@@ -79,7 +78,6 @@ public class ResponseController implements CommonApiResponse {
7978
private final AuthUtils authUtils;
8079
private final MetadataService metadataService;
8180

82-
8381
public ResponseController(SurveyUnitApiPort surveyUnitService,
8482
SurveyUnitQualityService surveyUnitQualityService,
8583
FileUtils fileUtils,
@@ -107,7 +105,7 @@ public ResponseEntity<Object> saveResponsesFromXmlFile(@RequestParam("pathLunati
107105
VariablesMap variablesMap;
108106
if(withDDI) {
109107
//Parse DDI
110-
log.info(String.format("Try to read DDI file : %s", metadataFilePath));
108+
log.info("Try to read DDI file : {}", metadataFilePath);
111109
try {
112110
variablesMap =
113111
DDIReader.getMetadataFromDDI(Path.of(metadataFilePath).toFile().toURI().toURL().toString(),
@@ -117,12 +115,12 @@ public ResponseEntity<Object> saveResponsesFromXmlFile(@RequestParam("pathLunati
117115
}
118116
}else{
119117
//Parse Lunatic
120-
log.info(String.format("Try to read lunatic file : %s", metadataFilePath));
118+
log.info("Try to read lunatic file : {}", metadataFilePath);
121119

122120
variablesMap = LunaticReader.getMetadataFromLunatic(new FileInputStream(metadataFilePath)).getVariables();
123121
}
124122

125-
log.info(String.format("Try to read Xml file : %s", xmlFile));
123+
log.info("Try to read Xml file : {}", xmlFile);
126124
Path filepath = Paths.get(xmlFile);
127125

128126
if (getFileSizeInMB(filepath) <= Constants.MAX_FILE_SIZE_UNTIL_SEQUENTIAL) {
@@ -331,7 +329,7 @@ public ResponseEntity<Object> saveEditedVariables(
331329
//Try to look for DDI first, if no DDI found looks for lunatic components
332330
List<GenesisError> errors = new ArrayList<>();
333331
//We need to retrieve campaignId
334-
HashSet<String> campaignIds = findCampaignId(surveyUnitInputDto);
332+
Set<String> campaignIds = surveyUnitService.findCampaignIdsFrom(surveyUnitInputDto);
335333
if (campaignIds.size() != 1){
336334
return ResponseEntity.status(500).body("Impossible to assign one campaignId to that response");
337335
}
@@ -384,14 +382,7 @@ public ResponseEntity<Object> saveEditedVariables(
384382
return ResponseEntity.ok(SUCCESS_MESSAGE);
385383
}
386384

387-
private HashSet<String> findCampaignId(SurveyUnitInputDto surveyUnitInputDto) {
388-
List<SurveyUnitModel> responses = surveyUnitService.findByIdsInterrogationAndQuestionnaire(surveyUnitInputDto.getInterrogationId(), surveyUnitInputDto.getQuestionnaireId());
389-
HashSet<String> campaignIds = new HashSet<>();
390-
for(SurveyUnitModel response : responses){
391-
campaignIds.add(response.getCampaignId());
392-
}
393-
return campaignIds;
394-
}
385+
395386

396387
//Utilities
397388
/**

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

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

33
import fr.insee.bpm.metadata.model.VariablesMap;
44
import fr.insee.genesis.controller.dto.CampaignWithQuestionnaire;
5+
import fr.insee.genesis.controller.dto.InterrogationId;
6+
import fr.insee.genesis.controller.dto.QuestionnaireWithCampaign;
57
import fr.insee.genesis.controller.dto.SurveyUnitDto;
68
import fr.insee.genesis.controller.dto.SurveyUnitInputDto;
79
import fr.insee.genesis.domain.model.surveyunit.Mode;
8-
import fr.insee.genesis.controller.dto.QuestionnaireWithCampaign;
910
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
10-
import fr.insee.genesis.controller.dto.InterrogationId;
1111
import fr.insee.genesis.exceptions.GenesisException;
1212

1313
import java.util.List;
@@ -57,4 +57,6 @@ List<SurveyUnitModel> parseEditedVariables(SurveyUnitInputDto surveyUnitInputDto
5757
VariablesMap variablesMap) throws GenesisException;
5858

5959
String findQuestionnaireIdByInterrogationId(String interrogationId) throws GenesisException;
60+
61+
Set<String> findCampaignIdsFrom(SurveyUnitInputDto dto);
6062
}

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
import fr.insee.genesis.controller.dto.VariableInputDto;
1111
import fr.insee.genesis.controller.dto.VariableStateDto;
1212
import fr.insee.genesis.domain.model.surveyunit.DataState;
13-
import fr.insee.genesis.domain.model.surveyunit.VarIdScopeTuple;
1413
import fr.insee.genesis.domain.model.surveyunit.Mode;
1514
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
15+
import fr.insee.genesis.domain.model.surveyunit.VarIdScopeTuple;
1616
import fr.insee.genesis.domain.model.surveyunit.VariableModel;
1717
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
1818
import fr.insee.genesis.domain.ports.spi.SurveyUnitPersistencePort;
@@ -29,6 +29,7 @@
2929
import java.util.List;
3030
import java.util.Map;
3131
import java.util.Set;
32+
import java.util.stream.Collectors;
3233
import java.util.stream.Stream;
3334

3435
@Service
@@ -315,6 +316,17 @@ public String findQuestionnaireIdByInterrogationId(String interrogationId) throw
315316
return questionnaireIds.iterator().next(); //Return first (and supposed only) element of set
316317
}
317318

319+
@Override
320+
public Set<String> findCampaignIdsFrom(SurveyUnitInputDto dto) {
321+
List<SurveyUnitModel> responses = findByIdsInterrogationAndQuestionnaire(
322+
dto.getInterrogationId(),
323+
dto.getQuestionnaireId()
324+
);
325+
return responses.stream()
326+
.map(SurveyUnitModel::getCampaignId)
327+
.collect(Collectors.toSet());
328+
}
329+
318330
//Utils
319331
private static List<Mode> getDistinctsModes(List<SurveyUnitModel> surveyUnitModels) {
320332
List<Mode> sources = new ArrayList<>();

0 commit comments

Comments
 (0)