diff --git a/pom.xml b/pom.xml
index 314587c4..3f43d202 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
Modules for queen back-office
- 4.5.0
+ 4.5.1
21
21
diff --git a/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/DataController.java b/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/DataController.java
index e9b39e75..2ecfab1a 100644
--- a/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/DataController.java
+++ b/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/DataController.java
@@ -60,7 +60,7 @@ public class DataController {
@PreAuthorize(AuthorityPrivileges.HAS_USER_PRIVILEGES)
@ApiResponse(responseCode = "200", content = {@Content(mediaType = "application/json", schema = @Schema(ref = SchemaType.Names.DATA))})
public ObjectNode getDataBySurveyUnit(@IdValid @PathVariable(value = "id") String surveyUnitId) {
- pilotageComponent.checkHabilitations(surveyUnitId, PilotageRole.INTERVIEWER);
+ pilotageComponent.checkHabilitations(surveyUnitId, PilotageRole.INTERVIEWER, PilotageRole.REVIEWER);
SurveyUnitSummary surveyUnitSummary = surveyUnitService.getSummaryById(surveyUnitId);
// if campaign sensitivity is OFF, return data
diff --git a/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/SurveyUnitController.java b/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/SurveyUnitController.java
index 9e890b11..7b1612e0 100644
--- a/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/SurveyUnitController.java
+++ b/queen-application/src/main/java/fr/insee/queen/application/surveyunit/controller/SurveyUnitController.java
@@ -66,17 +66,19 @@ public List getSurveyUnitIds() {
/**
* Retrieve survey units filtered by state
*
+ * @param campaignId campaign id
* @param stateDataType state
* @param pageNumber page to retrieve
* @return all ids of survey units
*/
@Operation(summary = "Retrieve survey-units by state")
- @PostMapping(path = "/survey-units")
+ @GetMapping(path = "/admin/campaign/{id}/survey-units")
@PreAuthorize(AuthorityPrivileges.HAS_ADMIN_PRIVILEGES)
public PagingResult getSurveyUnitsByState(
+ @IdValid @PathVariable("id") String campaignId,
@RequestParam(name="state") StateDataType stateDataType,
@RequestParam(defaultValue = "0") Integer pageNumber) {
- return surveyUnitService.getSurveyUnits(stateDataType, pageNumber);
+ return surveyUnitService.getSurveyUnits(campaignId, stateDataType, pageNumber);
}
/**
diff --git a/queen-application/src/test/java/fr/insee/queen/application/surveyunit/integration/SurveyUnitTests.java b/queen-application/src/test/java/fr/insee/queen/application/surveyunit/integration/SurveyUnitTests.java
index 1d7578ce..0e150882 100644
--- a/queen-application/src/test/java/fr/insee/queen/application/surveyunit/integration/SurveyUnitTests.java
+++ b/queen-application/src/test/java/fr/insee/queen/application/surveyunit/integration/SurveyUnitTests.java
@@ -56,14 +56,14 @@ void on_get_survey_units_return_survey_units() throws Exception {
"currentPage":"2.3#5"
}
}""";
- mockMvc.perform(post("/api/survey-units")
+ mockMvc.perform(get("/api/admin/campaign/SIMPSONS2020X00/survey-units")
.accept(MediaType.APPLICATION_JSON)
.param("state", StateDataTypeInput.INIT.name())
.with(authentication(authenticatedUserTestHelper.getAdminUser()))
)
.andDo(print())
.andExpect(status().isOk())
- .andExpect(jsonPath("$.contents.size()", is(13)))
+ .andExpect(jsonPath("$.contents.size()", is(3)))
// extract and check first element
.andExpect(result -> {
String responseContent = result.getResponse().getContentAsString();
diff --git a/queen-application/src/test/java/fr/insee/queen/application/surveyunit/service/dummy/SurveyUnitFakeService.java b/queen-application/src/test/java/fr/insee/queen/application/surveyunit/service/dummy/SurveyUnitFakeService.java
index 9feb0a72..185149db 100644
--- a/queen-application/src/test/java/fr/insee/queen/application/surveyunit/service/dummy/SurveyUnitFakeService.java
+++ b/queen-application/src/test/java/fr/insee/queen/application/surveyunit/service/dummy/SurveyUnitFakeService.java
@@ -192,7 +192,7 @@ public List findAllSurveyUnits() {
}
@Override
- public PagingResult getSurveyUnits(StateDataType stateDataType, Integer pageNumber) {
+ public PagingResult getSurveyUnits(String campaignId, StateDataType stateDataType, Integer pageNumber) {
return null;
}
}
diff --git a/queen-domain-pilotage/src/main/java/fr/insee/queen/domain/pilotage/service/PilotageApiService.java b/queen-domain-pilotage/src/main/java/fr/insee/queen/domain/pilotage/service/PilotageApiService.java
index 9eb2ae87..abbfabe6 100644
--- a/queen-domain-pilotage/src/main/java/fr/insee/queen/domain/pilotage/service/PilotageApiService.java
+++ b/queen-domain-pilotage/src/main/java/fr/insee/queen/domain/pilotage/service/PilotageApiService.java
@@ -146,7 +146,7 @@ public List getInterviewerCampaigns() {
}
@Override
- @Cacheable(value = CacheName.HABILITATION, key = "{#surveyUnit.id, #surveyUnit.campaignId, #role, #idep}")
+ @Cacheable(value = CacheName.HABILITATION, key = "{#surveyUnit.id, #surveyUnit.campaign.id, #role, #idep}")
public boolean hasHabilitation(SurveyUnitSummary surveyUnit, PilotageRole role, String idep) {
return pilotageRepository.hasHabilitation(surveyUnit, role, idep);
}
diff --git a/queen-domain-pilotage/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java b/queen-domain-pilotage/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
index df696965..46595124 100644
--- a/queen-domain-pilotage/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
+++ b/queen-domain-pilotage/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
@@ -132,7 +132,7 @@ public List findAllSurveyUnits() {
}
@Override
- public PagingResult getSurveyUnits(StateDataType stateDataType, Integer pageNumber) {
+ public PagingResult getSurveyUnits(String campaignId, StateDataType stateDataType, Integer pageNumber) {
return null;
}
}
diff --git a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/gateway/SurveyUnitRepository.java b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/gateway/SurveyUnitRepository.java
index 7ee0be8c..85e657ad 100644
--- a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/gateway/SurveyUnitRepository.java
+++ b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/gateway/SurveyUnitRepository.java
@@ -61,11 +61,12 @@ public interface SurveyUnitRepository {
/**
*
+ * @param campaignId campaign id
* @param stateDataType state data type to filter
* @param pageNumber page number
* @return pages of survey units with states
*/
- PagingResult findAllByState(StateDataType stateDataType, Integer pageNumber);
+ PagingResult findAllByState(String campaignId, StateDataType stateDataType, Integer pageNumber);
/**
* Find survey units with state linked by ids
diff --git a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitApiService.java b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitApiService.java
index 57b6543d..61fad24c 100644
--- a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitApiService.java
+++ b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitApiService.java
@@ -91,8 +91,8 @@ public List findAllSurveyUnitIds() {
}
@Override
- public PagingResult getSurveyUnits(StateDataType stateDataType, Integer pageNumber) {
- return surveyUnitRepository.findAllByState(stateDataType, pageNumber);
+ public PagingResult getSurveyUnits(String campaignId, StateDataType stateDataType, Integer pageNumber) {
+ return surveyUnitRepository.findAllByState(campaignId, stateDataType, pageNumber);
}
@Transactional
diff --git a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitService.java b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitService.java
index e11db7cb..f51ce1b8 100644
--- a/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitService.java
+++ b/queen-domain/src/main/java/fr/insee/queen/domain/surveyunit/service/SurveyUnitService.java
@@ -45,5 +45,5 @@ public interface SurveyUnitService {
List findAllSurveyUnits();
- PagingResult getSurveyUnits(StateDataType stateDataType, Integer pageNumber);
+ PagingResult getSurveyUnits(String campaignId, StateDataType stateDataType, Integer pageNumber);
}
diff --git a/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/infrastructure/dummy/SurveyUnitFakeDao.java b/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/infrastructure/dummy/SurveyUnitFakeDao.java
index 323ecad7..90cd1700 100644
--- a/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/infrastructure/dummy/SurveyUnitFakeDao.java
+++ b/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/infrastructure/dummy/SurveyUnitFakeDao.java
@@ -56,7 +56,7 @@ public Optional> findAllIds() {
}
@Override
- public PagingResult findAllByState(StateDataType stateDataType, Integer pageNumber) {
+ public PagingResult findAllByState(String campaignId, StateDataType stateDataType, Integer pageNumber) {
return null;
}
diff --git a/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java b/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
index 5ee981c2..109f9589 100644
--- a/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
+++ b/queen-domain/src/test/java/fr/insee/queen/domain/surveyunit/service/dummy/SurveyUnitFakeService.java
@@ -134,7 +134,7 @@ public List findAllSurveyUnits() {
}
@Override
- public PagingResult getSurveyUnits(StateDataType stateDataType, Integer pageNumber) {
+ public PagingResult getSurveyUnits(String campaignId, StateDataType stateDataType, Integer pageNumber) {
return null;
}
}
diff --git a/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/SurveyUnitDao.java b/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/SurveyUnitDao.java
index b052fbd8..3cf458e3 100644
--- a/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/SurveyUnitDao.java
+++ b/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/SurveyUnitDao.java
@@ -79,12 +79,12 @@ public Optional> findAllIds() {
}
@Override
- public PagingResult findAllByState(StateDataType state, Integer pageNumber) {
+ public PagingResult findAllByState(String campaignId, StateDataType state, Integer pageNumber) {
Pageable pageable = PageRequest.of(pageNumber, 1000, Sort.by("id"));
Page surveyUnitPages;
- surveyUnitPages = crudRepository.findAllByState(state, pageable);
+ surveyUnitPages = crudRepository.findAllByState(campaignId, state, pageable);
return new PagingResult<>(surveyUnitPages.toList(),
surveyUnitPages.getNumber(),
diff --git a/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/jpa/SurveyUnitJpaRepository.java b/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/jpa/SurveyUnitJpaRepository.java
index ce0b23e0..def6bcaf 100644
--- a/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/jpa/SurveyUnitJpaRepository.java
+++ b/queen-infra-db/src/main/java/fr/insee/queen/infrastructure/db/surveyunit/repository/jpa/SurveyUnitJpaRepository.java
@@ -164,6 +164,7 @@ public interface SurveyUnitJpaRepository extends JpaRepository findAllByState(StateDataType stateDataType, Pageable pageable);
+ from SurveyUnitDB s left join s.stateData st
+ where st.state = :stateDataType
+ and s.campaign.id = :campaignId""")
+ Page findAllByState(String campaignId, StateDataType stateDataType, Pageable pageable);
/**
* Search survey units by ids