Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
96e09c7
Rename idUE, idQuest and IdCampaign
loichenninger Jan 8, 2025
ce14419
Standardisation of ids name with the rule <prefix>Id
loichenninger Jan 8, 2025
cff5812
End of refactor on ids name
loichenninger Jan 10, 2025
d1a5284
Remaining IdLoop
loichenninger Jan 15, 2025
2ff95aa
Remaining IdUE
loichenninger Jan 20, 2025
b54e97d
Removing idLoop from endpoints used by data quality application
loichenninger Jan 20, 2025
2604bdc
refactor: Changed more ids
alexisszmundy Jan 23, 2025
6c29440
refactor: use correct name for models/dtos
alexisszmundy Jan 23, 2025
8706dd1
fix: resolve conflicts
loichenninger Feb 3, 2025
f10b197
fix: correction of invalid step name
loichenninger Feb 3, 2025
13b7a78
Merge branch 'main' into devIteration
alexisszmundy Feb 5, 2025
ee33f96
fix: fixes after conflicts
alexisszmundy Feb 5, 2025
0d9ab80
feat!: Iteration and value instead of iteration in loopId and values …
alexisszmundy Feb 5, 2025
241c46b
feat!: renamed loopId to scope
alexisszmundy Feb 6, 2025
8b9fcff
fix(cucumber): changed to scope
alexisszmundy Feb 6, 2025
eb2b585
fix: null iteration in latest states get
alexisszmundy Feb 6, 2025
1f78774
feat: edited variables service use metadatas to get scope
alexisszmundy Feb 7, 2025
b079a54
Merge branch 'devRenameIds' into devNewModel
alexisszmundy Feb 7, 2025
0d1ad48
Merge branch 'devIteration' into devNewModel
alexisszmundy Feb 7, 2025
1375f81
fix: fixes after merge
alexisszmundy Feb 7, 2025
fac2a22
refactor: use correct names
alexisszmundy Feb 7, 2025
d4f1587
test: Add KO tests for missing variables in get latest states
alexisszmundy Feb 10, 2025
d017dee
fix: fixes after first tests on DV (get latest states)
alexisszmundy Feb 10, 2025
51cb1f1
fix:(test) fixed unit tests to get first iteration
alexisszmundy Feb 10, 2025
94a4bf1
fix: bug where we lost data
loichenninger Feb 12, 2025
fd9161b
test: moved save data features to correct file
alexisszmundy Feb 13, 2025
3553eb7
test: add data extraction tests
alexisszmundy Feb 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/fr/insee/genesis/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ public class Constants {

public static final String XSLT_STRUCTURED_VARIABLES = "xslt/structured-variables.xsl";
public static final String ROOT_GROUP_NAME = "RACINE";
public static final String ROOT_IDENTIFIER_NAME = "IdUE";
public static final String ROOT_IDENTIFIER_NAME = "interrogationId";
public static final String METADATA_SEPARATOR = ".";
public static final String DATE_REGEX = "(^([0-9]{4})[\\-\\/]([0-9]|1[0-2]|0[1-9])[\\-\\/]([0-9]|[0-2][0-9]|3[0-1])$)|" +
"(^([0-9]|[0-2][0-9]|3[0-1])[\\-\\/]([0-9]|1[0-2]|0[1-9])[\\-\\/]([0-9]{4})$)";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ public class LunaticJsonAdapter {

public SurveyUnitModel convert(LunaticJsonSurveyUnit su){
return SurveyUnitModel.builder()
.idQuest(su.getIdQuest())
.idCampaign("")
.idUE(su.getIdUE())
.questionnaireId(su.getQuestionnaireId())
.campaignId("")
.interrogationId(su.getInterrogationId())
.state(DataState.COLLECTED)
.mode(Mode.WEB)
.recordDate(LocalDateTime.now())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,34 +23,34 @@ public class LunaticXmlAdapter {
* Convert a Lunatic XML survey unit into a genesis survey unit model
* @param su Lunatic XML survey unit to convert
* @param variablesMap variable definitions (used for loops)
* @param idCampaign survey id
* @param campaignId survey id
* @return Genesis SurveyUnitModels for each data state
*/
public static List<SurveyUnitModel> convert(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String idCampaign, Mode mode){
public static List<SurveyUnitModel> convert(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String campaignId, Mode mode){
//Get COLLECTED Data and external variables
List<SurveyUnitModel> surveyUnitModelList = new ArrayList<>();
SurveyUnitModel surveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, idCampaign, DataState.COLLECTED, mode);
SurveyUnitModel surveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, campaignId, DataState.COLLECTED, mode);
getExternalDataFromSurveyUnit(su, surveyUnitModel, variablesMap);

surveyUnitModelList.add(surveyUnitModel);

//Get data from other states
SurveyUnitModel editedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, idCampaign, DataState.EDITED,mode);
SurveyUnitModel editedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, campaignId, DataState.EDITED,mode);
if(editedSurveyUnitModel != null){
surveyUnitModelList.add(editedSurveyUnitModel);
}

SurveyUnitModel inputedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, idCampaign, DataState.INPUTED,mode);
SurveyUnitModel inputedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, campaignId, DataState.INPUTED,mode);
if(inputedSurveyUnitModel != null){
surveyUnitModelList.add(inputedSurveyUnitModel);
}

SurveyUnitModel forcedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, idCampaign, DataState.FORCED,mode);
SurveyUnitModel forcedSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, campaignId, DataState.FORCED,mode);
if(forcedSurveyUnitModel != null){
surveyUnitModelList.add(forcedSurveyUnitModel);
}

SurveyUnitModel previousSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, idCampaign, DataState.PREVIOUS,mode);
SurveyUnitModel previousSurveyUnitModel = getStateDataFromSurveyUnit(su, variablesMap, campaignId, DataState.PREVIOUS,mode);
if(previousSurveyUnitModel != null){
surveyUnitModelList.add(previousSurveyUnitModel);
}
Expand All @@ -63,15 +63,15 @@ public static List<SurveyUnitModel> convert(LunaticXmlSurveyUnit su, VariablesMa
* Collects data from XML survey unit depending on the data state
* @param su source XML Survey Unit
* @param variablesMap variable definitions (used for loops)
* @param idCampaign survey id
* @param campaignId survey id
* @param dataState state of the SurveyUnitModel to generate
* @return SurveyUnitModel with a specific state
*/
private static SurveyUnitModel getStateDataFromSurveyUnit(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String idCampaign, DataState dataState, Mode mode) {
private static SurveyUnitModel getStateDataFromSurveyUnit(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String campaignId, DataState dataState, Mode mode) {
SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder()
.idQuest(su.getQuestionnaireModelId())
.idCampaign(idCampaign)
.idUE(su.getId())
.questionnaireId(su.getQuestionnaireModelId())
.campaignId(campaignId)
.interrogationId(su.getId())
.state(dataState)
.mode(mode)
.recordDate(LocalDateTime.now())
Expand Down Expand Up @@ -119,14 +119,13 @@ private static SurveyUnitModel getCollectedDataFromSurveyUnit(LunaticXmlSurveyUn
continue; //Go to next data
}
for (int i = 1; i <= valueTypeList.size(); i++) {
List<String> variableValues = new ArrayList<>();
if (valueTypeList.get(i-1).getValue()!=null) {
variableValues.add(valueTypeList.get(i-1).getValue());
variableModels.add(VariableModel.builder()
.idVar(lunaticXmlCollectedData.getVariableName())
.values(variableValues)
.idLoop(LoopIdentifier.getLoopIdentifier(lunaticXmlCollectedData.getVariableName(), variablesMap, i))
.idParent(LoopIdentifier.getRelatedVariableName(lunaticXmlCollectedData.getVariableName(), variablesMap))
.varId(lunaticXmlCollectedData.getVariableName())
.value(valueTypeList.get(i-1).getValue())
.scope(LoopIdentifier.getLoopIdentifier(lunaticXmlCollectedData.getVariableName(), variablesMap))
.parentId(LoopIdentifier.getRelatedVariableName(lunaticXmlCollectedData.getVariableName(), variablesMap))
.iteration(i)
.build());
dataCount++;
}
Expand Down Expand Up @@ -157,14 +156,13 @@ private static void getExternalDataFromSurveyUnit(LunaticXmlSurveyUnit su, Surve
continue; //Go to next data
}
for (int i = 1; i <= valueTypeList.size(); i++) {
List<String> variableValues = new ArrayList<>();
if (valueTypeList.get(i-1).getValue()!=null) {
variableValues.add(valueTypeList.get(i-1).getValue());
variableModels.add(VariableModel.builder()
.idVar(lunaticXmlExternalData.getVariableName())
.values(variableValues)
.idLoop(LoopIdentifier.getLoopIdentifier(lunaticXmlExternalData.getVariableName(), variablesMap, i))
.idParent(LoopIdentifier.getRelatedVariableName(lunaticXmlExternalData.getVariableName(), variablesMap))
.varId(lunaticXmlExternalData.getVariableName())
.value(valueTypeList.get(i-1).getValue())
.scope(LoopIdentifier.getLoopIdentifier(lunaticXmlExternalData.getVariableName(), variablesMap))
.iteration(i)
.parentId(LoopIdentifier.getRelatedVariableName(lunaticXmlExternalData.getVariableName(), variablesMap))
.build());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
@NoArgsConstructor
@Getter
public class CampaignWithQuestionnaire {
private String idCampaign;
private String campaignId;
private Set<String> questionnaires;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.insee.genesis.controller.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -12,21 +11,20 @@
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class SurveyUnitId {
public class InterrogationId {

@JsonProperty("idUE")
private String idUE;
private String interrogationId;

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SurveyUnitId that = (SurveyUnitId) o;
return Objects.equals(idUE, that.idUE);
InterrogationId that = (InterrogationId) o;
return Objects.equals(interrogationId, that.interrogationId);
}

@Override
public int hashCode() {
return Objects.hash(idUE);
return Objects.hash(interrogationId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
@NoArgsConstructor
@Getter
public class QuestionnaireWithCampaign {
private String idQuestionnaire;
private String questionnaireId;
private Set<String> campaigns;
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@Builder
@Data
public class SurveyUnitDto {
private String surveyUnitId;
private String interrogationId;
private List<VariableDto> collectedVariables;
private List<VariableDto> externalVariables;
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@
@Builder
@Data
public class SurveyUnitInputDto {

private String surveyUnitId;
private String interrogationId;
private String campaignId;
private Mode mode;
private String idQuestionnaire;
private String questionnaireId;
private List<VariableInputDto> collectedVariables;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package fr.insee.genesis.controller.dto;

import lombok.Builder;
import lombok.Data;

import java.util.List;

@Builder
@Data
public class SurveyUnitQualityToolDto {
private String interrogationId;
private List<VariableQualityToolDto> collectedVariables;
private List<VariableQualityToolDto> externalVariables;
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
@Data
public class SurveyUnitSimplified {

private String idQuest;
private String idCampaign;
private String idUE;
private String questionnaireId;
private String campaignId;
private String interrogationId;
private Mode mode;
private List<VariableModel> variablesUpdate;
private List<VariableModel> externalVariables;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
@Data
public class VariableDto {
private String variableName;
private String idLoop;
private String scope;
private int iteration;

@JsonProperty("variableStates")
private List<VariableStateDto> variableStateDtoList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@Data
public class VariableInputDto {
private String variableName;
private String idLoop;
private int iteration;

@JsonProperty("newVariableState")
private VariableStateInputDto variableStateInputDto;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package fr.insee.genesis.controller.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;

import java.util.List;

@Builder
@Data
public class VariableQualityToolDto {
private String variableName;
private Integer iteration;

@JsonProperty("variableStates")
private List<VariableStateDto> variableStateDtoList;
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public CampaignController(SurveyUnitApiPort surveyUnitService) {
@Operation(summary = "List campaigns in database")
@GetMapping(path = "/")
public ResponseEntity<Set<String>> getCampaigns() {
Set<String> campaigns = surveyUnitService.findDistinctIdCampaigns();
Set<String> campaigns = surveyUnitService.findDistinctCampaignIds();
return ResponseEntity.ok(campaigns);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.insee.genesis.controller.rest.responses;

import fr.insee.genesis.controller.dto.SurveyUnitId;
import fr.insee.genesis.controller.dto.InterrogationId;
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -12,23 +12,23 @@

import java.util.List;

@RequestMapping(path = "/idUEs" )
@RequestMapping(path = "/interrogations" )
@Controller
@Slf4j
public class IdUEController {
public class InterrogationController {

private final SurveyUnitApiPort surveyUnitService;


public IdUEController(SurveyUnitApiPort surveyUnitService) {
public InterrogationController(SurveyUnitApiPort surveyUnitService) {
this.surveyUnitService = surveyUnitService;
}


@Operation(summary = "Retrieve all IdUEs for a given questionnaire")
@Operation(summary = "Retrieve all interrogations for a given questionnaire")
@GetMapping(path = "/by-questionnaire")
public ResponseEntity<List<SurveyUnitId>> getAllIdUEsByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) {
List<SurveyUnitId> responses = surveyUnitService.findDistinctIdUEsByIdQuestionnaire(idQuestionnaire);
public ResponseEntity<List<InterrogationId>> getAllInterrogationIdsByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) {
List<InterrogationId> responses = surveyUnitService.findDistinctInterrogationIdsByQuestionnaireId(questionnaireId);
return ResponseEntity.ok(responses);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ public ModeController(SurveyUnitApiPort surveyUnitService) {

@Operation(summary = "List sources/modes used for a given questionnaire")
@GetMapping(path = "/by-questionnaire")
public ResponseEntity<List<Mode>> getModesByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) {
List<Mode> modes = surveyUnitService.findModesByIdQuestionnaire(idQuestionnaire);
public ResponseEntity<List<Mode>> getModesByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) {
List<Mode> modes = surveyUnitService.findModesByQuestionnaireId(questionnaireId);
return ResponseEntity.ok(modes);
}

@Operation(summary = "List sources/modes used for a given campaign")
@GetMapping(path = "/by-campaign")
public ResponseEntity<List<Mode>> getModesByCampaign(@RequestParam("idCampaign") String idCampaign) {
List<Mode> modes = surveyUnitService.findModesByIdCampaign(idCampaign);
public ResponseEntity<List<Mode>> getModesByCampaign(@RequestParam("campaignId") String campaignId) {
List<Mode> modes = surveyUnitService.findModesByCampaignId(campaignId);
return ResponseEntity.ok(modes);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public QuestionnaireController(SurveyUnitApiPort surveyUnitService) {
@Operation(summary = "List questionnaires in database")
@GetMapping(path = "/")
public ResponseEntity<Set<String>> getQuestionnaires() {
Set<String> questionnaires = surveyUnitService.findDistinctIdQuestionnaires();
Set<String> questionnaires = surveyUnitService.findDistinctQuestionnaireIds();
return ResponseEntity.ok(questionnaires);
}

Expand All @@ -45,8 +45,8 @@ public ResponseEntity<List<QuestionnaireWithCampaign>> getQuestionnairesWithCamp

@Operation(summary = "List questionnaires used for a given campaign")
@GetMapping(path = "/by-campaign")
public ResponseEntity<Set<String>> getQuestionnairesByCampaign(@RequestParam("idCampaign") String idCampaign) {
Set<String> questionnaires = surveyUnitService.findIdQuestionnairesByIdCampaign(idCampaign);
public ResponseEntity<Set<String>> getQuestionnairesByCampaign(@RequestParam("campaignId") String campaignId) {
Set<String> questionnaires = surveyUnitService.findQuestionnaireIdsByCampaignId(campaignId);
return ResponseEntity.ok(questionnaires);
}

Expand Down
Loading
Loading