Skip to content

Commit 736b20a

Browse files
committed
fix: use mongoTemplate to get distinct
1 parent 874669b commit 736b20a

File tree

5 files changed

+13
-56
lines changed

5 files changed

+13
-56
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public interface LunaticJsonRawDataPersistencePort {
1616
void save(LunaticJsonRawDataModel rawData);
1717
List<LunaticJsonRawDataModel> findRawData(String campaignName, Mode mode, List<String> interrogationIdList);
1818
List<LunaticJsonRawDataModel> getAllUnprocessedData();
19-
Set<String> findDistinctQuestionnaireIdsByNullProcessDate();
2019
void updateProcessDates(String campaignId, Set<String> interrogationIds);
2120
Set<String> findDistinctQuestionnaireIds();
21+
Set<String> findDistinctQuestionnaireIdsByNullProcessDate();
2222
Page<LunaticJsonRawDataModel> findByCampaignIdAndDate(String campaignId, Instant startDt, Instant endDt, Pageable pageable);
2323
long countResponsesByQuestionnaireId(String questionnaireId);
2424
List<GroupedInterrogation> findProcessedIdsGroupedByQuestionnaireSince(LocalDateTime since);

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public List<LunaticJsonRawDataModel> getAllUnprocessedData() {
5151

5252
@Override
5353
public Set<String> findDistinctQuestionnaireIdsByNullProcessDate(){
54-
return new HashSet<>(repository.findQuestionnaireIdsByNullProcessDate());
54+
return getDistinctQuestionnaireIdsInCollection(Constants.MONGODB_LUNATIC_RAWDATA_COLLECTION_NAME);
5555
}
5656

5757
@Override
@@ -70,13 +70,7 @@ public void updateProcessDates(String campaignId, Set<String> interrogationIds)
7070

7171
@Override
7272
public Set<String> findDistinctQuestionnaireIds() {
73-
Set<String> questionnaireIds = new HashSet<>();
74-
for(String questionnaireId : mongoTemplate.getCollection(Constants.MONGODB_RAW_RESPONSES_COLLECTION_NAME).distinct(
75-
"questionnaireId",
76-
String.class)){
77-
questionnaireIds.add(questionnaireId);
78-
}
79-
return questionnaireIds;
73+
return getDistinctQuestionnaireIdsInCollection(Constants.MONGODB_RAW_RESPONSES_COLLECTION_NAME);
8074
}
8175

8276
@Override
@@ -111,4 +105,14 @@ public Set<String> findUnprocessedInterrogationIdsByCollectionInstrumentId(Strin
111105

112106
return interrogationIds;
113107
}
108+
109+
private Set<String> getDistinctQuestionnaireIdsInCollection(String collectionName) {
110+
Set<String> questionnaireIds = new HashSet<>();
111+
for (String questionnaireId : mongoTemplate.getCollection(collectionName).distinct(
112+
"questionnaireId",
113+
String.class)) {
114+
questionnaireIds.add(questionnaireId);
115+
}
116+
return questionnaireIds;
117+
}
114118
}

src/main/java/fr/insee/genesis/infrastructure/repository/LunaticJsonMongoDBRepository.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,4 @@ public interface LunaticJsonMongoDBRepository extends MongoRepository<LunaticJso
8181
"} }"
8282
})
8383
List<GroupedInterrogationDocument> aggregateRawGroupedWithNullProcessDate(String questionnaireId);
84-
85-
@Query(value = "{\"processDate\" : null}", fields = "{'questionnaireId' : 1 }")
86-
List<String> findQuestionnaireIdsByNullProcessDate();
8784
}

src/test/java/fr/insee/genesis/infrastructure/adapter/LunaticJsonRawDataMongoAdapterTest.java

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -74,35 +74,4 @@ void findRawDataTest(){
7474
List<LunaticJsonRawDataModel> rawdatas = adapter.findRawData("campaign01",Mode.WEB,List.of("interrogation01"));
7575
Assertions.assertThat(rawdatas).hasSize(1);
7676
}
77-
78-
@Test
79-
void getAllUnprocessedQuestionnaireIdTest(){
80-
//GIVEN
81-
repository.getDocuments().add(doc);
82-
//Not null processdate
83-
LunaticJsonRawDataDocument rawData = LunaticJsonRawDataDocument.builder()
84-
.campaignId("campaign01")
85-
.questionnaireId("questionnaire02")
86-
.interrogationId("interrogation01")
87-
.idUE("idUE01")
88-
.mode(Mode.WEB)
89-
.processDate(LocalDateTime.now())
90-
.build();
91-
repository.getDocuments().add(rawData);
92-
//Null processdate
93-
rawData = LunaticJsonRawDataDocument.builder()
94-
.campaignId("campaign01")
95-
.questionnaireId("questionnaire03")
96-
.interrogationId("interrogation01")
97-
.idUE("idUE01")
98-
.mode(Mode.WEB)
99-
.build();
100-
repository.getDocuments().add(rawData);
101-
//THEN
102-
Assertions.assertThat(adapter.findDistinctQuestionnaireIdsByNullProcessDate()).containsExactlyInAnyOrder(
103-
"questionnaire01",
104-
"questionnaire03"
105-
);
106-
}
107-
10877
}

src/test/java/fr/insee/genesis/stubs/LunaticJsonMongoDBRepositoryStub.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -148,19 +148,6 @@ public List<GroupedInterrogationDocument> aggregateRawGroupedWithNullProcessDate
148148
return Collections.singletonList(groupedInterrogationDocument);
149149
}
150150

151-
@Override
152-
public List<String> findQuestionnaireIdsByNullProcessDate() {
153-
List<String> questionnaireIds = new ArrayList<>();
154-
documents.stream().filter(
155-
lunaticJsonDataDocument -> lunaticJsonDataDocument.processDate() == null
156-
).forEach(doc -> {
157-
if(doc.questionnaireId() != null){
158-
questionnaireIds.add(doc.questionnaireId());
159-
}
160-
});
161-
return questionnaireIds;
162-
}
163-
164151
// Implémentations vides requises par MongoRepository
165152
@Override public <S extends LunaticJsonRawDataDocument> S save(S entity) { return null; }
166153
@Override public Optional<LunaticJsonRawDataDocument> findById(String s) { return Optional.empty(); }

0 commit comments

Comments
 (0)