Skip to content

Commit 3d3dd5b

Browse files
committed
fix: questionnaire with new collecttionInstrumentId were not listed
1 parent 0703740 commit 3d3dd5b

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ public class SurveyUnitModel {
2424
// New name of questionnaireId
2525
private String collectionInstrumentId;
2626
// To be removed
27+
/**
28+
* @deprecated We will not receive this identifier anymore
29+
*/
30+
@Deprecated(forRemoval = true)
2731
private String campaignId;
2832
private String interrogationId;
2933
// New name of idUE

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

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

1313
public interface RawResponseApiPort {
1414

15-
List<RawResponse> getRawResponses(String questionnaireModelId, Mode mode, List<String> interrogationIdList);
16-
DataProcessResult processRawResponses(String questionnaireId, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException;
15+
List<RawResponse> getRawResponses(String collectionInstrumentId, Mode mode, List<String> interrogationIdList);
16+
DataProcessResult processRawResponses(String collectionInstrumentId, List<String> interrogationIdList, List<GenesisError> errors) throws GenesisException;
1717
List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses, VariablesMap variablesMap);
1818
void updateProcessDates(List<SurveyUnitModel> surveyUnitModels);
1919
}

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.core.JsonProcessingException;
44
import com.fasterxml.jackson.databind.JsonNode;
55
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import com.mongodb.client.MongoCollection;
67
import fr.insee.genesis.Constants;
78
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
89
import fr.insee.genesis.domain.ports.spi.SurveyUnitPersistencePort;
@@ -11,6 +12,7 @@
1112
import fr.insee.genesis.infrastructure.repository.SurveyUnitMongoDBRepository;
1213
import jakarta.validation.constraints.NotNull;
1314
import lombok.extern.slf4j.Slf4j;
15+
import org.bson.Document;
1416
import org.springframework.beans.factory.annotation.Autowired;
1517
import org.springframework.beans.factory.annotation.Qualifier;
1618
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -207,11 +209,11 @@ public long countByCampaignId(String campaignId){
207209
@Override
208210
public Set<String> findDistinctQuestionnaireIds() {
209211
Set<String> questionnaireIds = new HashSet<>();
210-
for(String questionnaireId : mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME).distinct(
211-
QUESTIONNAIRE_ID,
212-
String.class)){
213-
questionnaireIds.add(questionnaireId);
214-
}
212+
// Id selection is executed by mongoDB
213+
MongoCollection<Document> collection = mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME);
214+
collection.distinct("questionnaireId", String.class).into(questionnaireIds);
215+
collection.distinct("collectionInstrumentId", String.class).into(questionnaireIds);
216+
questionnaireIds.remove(null);
215217
return questionnaireIds;
216218
}
217219

0 commit comments

Comments
 (0)