2323import fr .insee .genesis .exceptions .GenesisError ;
2424import fr .insee .genesis .exceptions .GenesisException ;
2525import fr .insee .genesis .infrastructure .utils .FileUtils ;
26+ import fr .insee .modelefiliere .RawResponseDto ;
2627import lombok .extern .slf4j .Slf4j ;
2728import org .springframework .beans .factory .annotation .Qualifier ;
2829import org .springframework .http .ResponseEntity ;
@@ -210,6 +211,13 @@ public List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses,
210211 for (RawResponse rawResponse : rawResponses ) {
211212 //Get optional fields
212213 Boolean isCapturedIndirectly = getIsCapturedIndirectly (rawResponse );
214+ String questionnaireStateString = getStringFieldInPayload (rawResponse , "questionnaireState" );
215+ RawResponseDto .QuestionnaireStateEnum questionnaireStateEnum = null ;
216+ try {
217+ questionnaireStateEnum = RawResponseDto .QuestionnaireStateEnum .valueOf (questionnaireStateString );
218+ } catch (IllegalArgumentException iae ){
219+ log .warn ("'{}' is not a valid questionnaire state according to filiere model" , questionnaireStateString );
220+ }
213221 LocalDateTime validationDate = getValidationDate (rawResponse );
214222 String usualSurveyUnitId = getStringFieldInPayload (rawResponse ,"usualSurveyUnitId" );
215223 String majorModelVersion = getStringFieldInPayload (rawResponse , "majorModelVersion" );
@@ -220,6 +228,7 @@ public List<SurveyUnitModel> convertRawResponse(List<RawResponse> rawResponses,
220228 .mode (rawResponse .mode ())
221229 .interrogationId (rawResponse .interrogationId ())
222230 .usualSurveyUnitId (usualSurveyUnitId )
231+ .questionnaireState (questionnaireStateEnum )
223232 .validationDate (validationDate )
224233 .isCapturedIndirectly (isCapturedIndirectly )
225234 .state (dataState )
0 commit comments