Fixed validation error issue in nex-prev api.

This commit is contained in:
piyushkag
2025-01-22 18:04:00 +05:30
parent 8416801d0b
commit 4957a91f41
3 changed files with 11 additions and 8 deletions

View File

@@ -402,7 +402,7 @@ public class ApplicationDao {
ApplicationResponse responseBean = new ApplicationResponse();
List<FlowEdgesEntity> flowEdgesList = flowEdgesRepository.findByCallId(applicationEntity.getCall().getId());
Long totalFormSteps = flowFormDao.calculateTotalSteps(flowEdgesList);
Long completedSteps= Long.valueOf(flowFormDao.getCompletedSteps(applicationEntity));
Long completedSteps= Long.valueOf(flowFormDao.getCompletedSteps(applicationEntity, false));
Integer progress = calculateProgress(totalFormSteps, completedSteps);
responseBean.setId(applicationEntity.getId());
responseBean.setProgress(progress);
@@ -1262,7 +1262,7 @@ public class ApplicationDao {
}
List<FlowEdgesEntity> flowEdgesList = flowEdgesRepository.findByCallId(applicationEntity.getCall().getId());
Long totalSteps = flowFormDao.calculateTotalSteps(flowEdgesList);
Integer completedSteps = flowFormDao.getCompletedSteps(applicationEntity);
Integer completedSteps = flowFormDao.getCompletedSteps(applicationEntity, true);
if (totalSteps.intValue() != completedSteps) {
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_IS_INCOMPLETE_MSG));
}

View File

@@ -305,7 +305,7 @@ public class FlowFormDao {
Long totalFormSteps = calculateTotalSteps(flowEdgesList);
Long currentStep = calculateCurrentStep(flowEdgesList, formEntity);
nextOrPreviousFormResponse.setTotalFormSteps(totalFormSteps);
completedSteps = getCompletedSteps(applicationEntity);
completedSteps = getCompletedSteps(applicationEntity, false);
nextOrPreviousFormResponse.setCompletedSteps(Long.valueOf(completedSteps));
nextOrPreviousFormResponse.setCurrentStep(currentStep);
if(applicationEntity.getProtocol() != null) {
@@ -318,13 +318,13 @@ public class FlowFormDao {
return nextOrPreviousFormResponse;
}
public Integer getCompletedSteps(ApplicationEntity applicationEntity) {
public Integer getCompletedSteps(ApplicationEntity applicationEntity, Boolean isSendValidationError) {
Integer completedSteps=0;
List<ApplicationFormEntity> applicationFormList = applicationFormRepository.findByApplicationId(applicationEntity.getId());
List<ApplicationFormFieldEntity> applicationFormFieldEntities=new ArrayList<>();
for (ApplicationFormEntity applicationFormEntity:applicationFormList){
applicationFormFieldEntities=applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
Boolean isCompleted=formDao.validateCompletedSteps(applicationFormFieldEntities, applicationEntity, applicationFormEntity.getForm());
Boolean isCompleted=formDao.validateCompletedSteps(applicationFormFieldEntities, applicationEntity, applicationFormEntity.getForm(), isSendValidationError);
if(Boolean.TRUE.equals(isCompleted)){
completedSteps++;
}
@@ -361,7 +361,7 @@ public class FlowFormDao {
FormEntity currentFormEntity = applicationFormList.get(applicationFormList.size() - 1).getForm();
for (ApplicationFormEntity applicationFormEntity : applicationFormList) {
Boolean isCompleted = formDao.validateCompletedSteps(applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId()), applicationEntity, applicationFormEntity.getForm());
Boolean isCompleted = formDao.validateCompletedSteps(applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId()), applicationEntity, applicationFormEntity.getForm(), false);
if (Boolean.FALSE.equals(isCompleted)) {
return applicationFormEntity.getForm().getId();
}

View File

@@ -451,7 +451,8 @@ public class FormDao {
return false;
}
public Boolean validateCompletedSteps(List<ApplicationFormFieldEntity> applicationFormFieldEntityList, ApplicationEntity applicationEntity, FormEntity formEntity) {
public Boolean validateCompletedSteps(List<ApplicationFormFieldEntity> applicationFormFieldEntityList, ApplicationEntity applicationEntity, FormEntity formEntity,
Boolean isSendValidationError) {
Map<String, Object> formFieldMap = new LinkedHashMap<String, Object>();
for(ApplicationFormFieldEntity applicationFormFieldEntity:applicationFormFieldEntityList) {
formFieldMap.put(applicationFormFieldEntity.getFieldId(),applicationFormFieldEntity.getFieldValue());
@@ -467,7 +468,9 @@ public class FormDao {
validator
.isRequired(value,fieldValidatorBean.getIsRequired(),contentResponseBean.getLabel());
});
validator.validate();
if (Boolean.TRUE.equals(isSendValidationError)) {
validator.validate();
}
if (validator.hasErrors()) {
return false;
}