33import fr .insee .genesis .controller .rest .CommonApiResponse ;
44import fr .insee .genesis .domain .model .surveyunit .Mode ;
55import fr .insee .genesis .domain .ports .api .SurveyUnitApiPort ;
6+ import fr .insee .genesis .exceptions .QuestionnaireNotFoundException ;
67import io .swagger .v3 .oas .annotations .Operation ;
78import lombok .extern .slf4j .Slf4j ;
9+ import org .springframework .http .HttpStatus ;
810import org .springframework .http .ResponseEntity ;
911import org .springframework .stereotype .Controller ;
1012import org .springframework .web .bind .annotation .GetMapping ;
1113import org .springframework .web .bind .annotation .RequestMapping ;
1214import org .springframework .web .bind .annotation .RequestParam ;
1315
16+ import java .util .Collections ;
1417import java .util .List ;
1518
1619@ RequestMapping (path = "/modes" )
@@ -29,8 +32,13 @@ public ModeController(SurveyUnitApiPort surveyUnitService) {
2932 @ Operation (summary = "List sources/modes used for a given collection instrument (ex questionnaire)" )
3033 @ GetMapping (path = "/by-questionnaire" )
3134 public ResponseEntity <List <Mode >> getModesByQuestionnaire (@ RequestParam ("questionnaireId" ) String collectionInstrumentId ) {
32- List <Mode > modes = surveyUnitService .findModesByCollectionInstrumentId (collectionInstrumentId );
33- return ResponseEntity .ok (modes );
35+ try {
36+ List <Mode > modes = surveyUnitService .findModesByCollectionInstrumentId (collectionInstrumentId );
37+ return ResponseEntity .ok (modes );
38+ } catch (QuestionnaireNotFoundException e ) {
39+ return ResponseEntity .status (HttpStatus .NOT_FOUND )
40+ .body (Collections .emptyList ());
41+ }
3442 }
3543
3644 @ Operation (summary = "List sources/modes used for a given campaign" )
0 commit comments