@@ -234,40 +234,44 @@ public ResponseEntity<Object> processJsonRawData(
234234 @ RequestParam ("campaignName" ) String campaignName ,
235235 @ RequestParam ("questionnaireId" ) String questionnaireId ,
236236 @ RequestBody List <String > idUEList
237- ) throws GenesisException {
237+ ){
238238 log .info ("Try to get process raw JSON datas for campaign {} and {} idUEs" , campaignName , idUEList .size ());
239239
240240 int dataCount = 0 ;
241241 List <GenesisError > errors = new ArrayList <>();
242242
243- List <Mode > modesList = controllerUtils .getModesList (campaignName , null );
244- for (Mode mode : modesList ){
245- //Load and save metadatas into database, throw exception if none
246- VariablesMap variablesMap = readMetadatas (campaignName , mode , errors , true );
247- if (variablesMap == null ){
248- throw new GenesisException (400 ,
249- "Error during metadata parsing for mode %s :%n%s"
250- .formatted (mode , errors .getLast ().toString ())
243+ try {
244+ List <Mode > modesList = controllerUtils .getModesList (campaignName , null );
245+ for (Mode mode : modesList ) {
246+ //Load and save metadatas into database, throw exception if none
247+ VariablesMap variablesMap = readMetadatas (campaignName , mode , errors , true );
248+ if (variablesMap == null ) {
249+ throw new GenesisException (400 ,
250+ "Error during metadata parsing for mode %s :%n%s"
251+ .formatted (mode , errors .getLast ().getMessage ())
252+ );
253+ }
254+
255+ //Save converted data
256+ List <SurveyUnitModel > surveyUnitModels = lunaticJsonRawDataApiPort .parseRawData (
257+ campaignName ,
258+ mode ,
259+ idUEList ,
260+ variablesMap
251261 );
252- }
262+ surveyUnitService . saveSurveyUnits ( surveyUnitModels );
253263
254- //Save converted data
255- List <SurveyUnitModel > surveyUnitModels = lunaticJsonRawDataApiPort .parseRawData (
256- campaignName ,
257- mode ,
258- idUEList ,
259- variablesMap
260- );
261- surveyUnitService .saveSurveyUnits (surveyUnitModels );
262-
263- //Update process dates
264- lunaticJsonRawDataApiPort .updateProcessDates (surveyUnitModels );
265-
266- //Save metadatas
267- variableTypeApiPort .saveMetadatas (campaignName , questionnaireId , mode , variablesMap );
268- dataCount += surveyUnitModels .size ();
264+ //Update process dates
265+ lunaticJsonRawDataApiPort .updateProcessDates (surveyUnitModels );
266+
267+ //Save metadatas
268+ variableTypeApiPort .saveMetadatas (campaignName , questionnaireId , mode , variablesMap );
269+ dataCount += surveyUnitModels .size ();
270+ }
271+ return ResponseEntity .ok ("%d document(s) processed" .formatted (dataCount ));
272+ }catch (GenesisException e ){ //TODO replace with spring exception handler
273+ return ResponseEntity .status (e .getStatus ()).body (e .getMessage ());
269274 }
270- return ResponseEntity .ok ("%d document(s) processed" .formatted (dataCount ));
271275 }
272276
273277
0 commit comments