Updated get endpoints
This commit is contained in:
@@ -5,9 +5,9 @@ import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.entities.*;
|
||||
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationFormFieldRequestBean;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
||||
import net.gepafin.tendermanagement.model.response.ApplicationFormFieldResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.ApplicationResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.*;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationFormFieldRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationFormRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
@@ -50,9 +50,12 @@ public class ApplicationDao {
|
||||
@Autowired
|
||||
private FormService formService;
|
||||
|
||||
public ApplicationResponseBean createApplication(ApplicationRequestBean applicationRequestBean, UserEntity userEntity, Long callId) {
|
||||
CallEntity call = callService.validateCall(callId);
|
||||
FormEntity formEntity = formService.validateForm(applicationRequestBean.getFormId());
|
||||
@Autowired
|
||||
private FormDao formDao;
|
||||
|
||||
public ApplicationResponseBean createApplication(ApplicationRequestBean applicationRequestBean, UserEntity userEntity, Long formId) {
|
||||
FormEntity formEntity = formService.validateForm(formId);
|
||||
CallEntity call = callService.validateCall(formEntity.getCall().getId());
|
||||
ApplicationEntity applicationEntity = getApplicationOrCreate(userEntity, call, formEntity);
|
||||
formService.validateFormField(applicationRequestBean.getFormFields(),applicationEntity,formEntity);
|
||||
ApplicationFormEntity applicationFormEntity = getApplicationFormOrCreate(formEntity, applicationEntity);
|
||||
@@ -117,47 +120,25 @@ public class ApplicationDao {
|
||||
log.info("Application deleted with ID: {}", id);
|
||||
}
|
||||
|
||||
public List<ApplicationResponseBean> getAllApplications(Map<String, Object> userInfo) {
|
||||
public List<ApplicationResponse> getAllApplications(UserEntity userEntity) {
|
||||
log.info("Fetching all applications");
|
||||
String userIdStr = (String) userInfo.get("userId");
|
||||
Long userId = Long.parseLong(userIdStr);
|
||||
List<ApplicationEntity> applicationEntities = applicationRepository.findByUserIdAndIsDeletedFalse(userId);
|
||||
List<Long> applicationIds = applicationEntities.stream()
|
||||
.map(ApplicationEntity::getId)
|
||||
.collect(Collectors.toList());
|
||||
List<ApplicationResponse> applicationResponses=new ArrayList<>();
|
||||
List<ApplicationEntity> applicationEntities = applicationRepository.findByUserIdAndIsDeletedFalse(userEntity.getId());
|
||||
for(ApplicationEntity applicationEntity:applicationEntities){
|
||||
ApplicationResponse responseBean = getApplicationResponse(applicationEntity);
|
||||
applicationResponses.add(responseBean);
|
||||
}
|
||||
return applicationResponses;
|
||||
}
|
||||
|
||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationIdIn(applicationIds);
|
||||
|
||||
List<Long> applicationFormIds = applicationFormEntities.stream()
|
||||
.map(ApplicationFormEntity::getId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<ApplicationFormFieldEntity> applicationFormFieldEntities = applicationFormFieldRepository.findByApplicationFormIdIn(applicationFormIds);
|
||||
|
||||
|
||||
return applicationEntities.stream().map(applicationEntity -> {
|
||||
ApplicationResponseBean responseBean = new ApplicationResponseBean();
|
||||
|
||||
responseBean.setCallId(applicationEntity.getCall().getId());
|
||||
responseBean.setSubmissionDate(applicationEntity.getSubmissionDate());
|
||||
responseBean.setStatus(applicationEntity.getStatus());
|
||||
responseBean.setComments(applicationEntity.getComments());
|
||||
|
||||
List<ApplicationFormFieldResponseBean> formFieldResponseBeans = applicationFormFieldEntities.stream()
|
||||
.filter(field -> field.getApplicationForm().getApplication().getId().equals(applicationEntity.getId()))
|
||||
.map(field -> {
|
||||
ApplicationFormFieldResponseBean fieldResponseBean = new ApplicationFormFieldResponseBean();
|
||||
fieldResponseBean.setId(field.getId());
|
||||
fieldResponseBean.setFieldId(field.getFieldId());
|
||||
fieldResponseBean.setApplicationFormId(field.getApplicationForm().getId());
|
||||
fieldResponseBean.setFieldValue(field.getFieldValue());
|
||||
return fieldResponseBean;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
responseBean.setFormFields(formFieldResponseBeans);
|
||||
|
||||
return responseBean;
|
||||
}).collect(Collectors.toList());
|
||||
private ApplicationResponse getApplicationResponse(ApplicationEntity applicationEntity) {
|
||||
ApplicationResponse responseBean = new ApplicationResponse();
|
||||
responseBean.setId(applicationEntity.getId());
|
||||
responseBean.setCallId(applicationEntity.getCall().getId());
|
||||
responseBean.setSubmissionDate(applicationEntity.getSubmissionDate());
|
||||
responseBean.setStatus(applicationEntity.getStatus());
|
||||
responseBean.setComments(applicationEntity.getComments());
|
||||
return responseBean;
|
||||
}
|
||||
|
||||
public ApplicationEntity validateApplication(Long id) {
|
||||
@@ -247,4 +228,82 @@ public class ApplicationDao {
|
||||
ApplicationEntity applicationEntity=applicationRepository.save(application);
|
||||
return applicationEntity;
|
||||
}
|
||||
|
||||
public ApplicationGetResponseBean getApplicationByFormId( Long applicationId,Long formId, UserEntity userEntity) {
|
||||
|
||||
ApplicationEntity applicationEntity=null;
|
||||
List<FormApplicationResponse> formApplicationResponses = new ArrayList<>();
|
||||
List<FormEntity> formEntities = new ArrayList<>();
|
||||
Optional<ApplicationEntity> applicationEntity1 = applicationRepository.findById(applicationId);
|
||||
applicationEntity=applicationEntity1.get();
|
||||
if (applicationEntity == null) {
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.APPLICATION_NOT_FOUND_MSG));
|
||||
}
|
||||
if (formId != null) {
|
||||
FormEntity formEntity = formService.validateForm(formId);
|
||||
applicationEntity = applicationRepository.findByUserIdAndCallIdAndIsDeletedFalse(userEntity.getId(), formEntity.getCall().getId());
|
||||
formEntities.add(formEntity);
|
||||
processForm(formEntity, applicationEntity, formApplicationResponses);
|
||||
}
|
||||
else {
|
||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationEntity.getId());
|
||||
for (ApplicationFormEntity applicationFormEntity : applicationFormEntities) {
|
||||
FormEntity form = formService.validateForm(applicationFormEntity.getForm().getId());
|
||||
formEntities.add(form);
|
||||
processForm(form, applicationEntity, formApplicationResponses);
|
||||
}
|
||||
}
|
||||
|
||||
return createApplicationGetResponseBean(applicationEntity, formEntities, formApplicationResponses);
|
||||
}
|
||||
|
||||
private void processForm(FormEntity formEntity, ApplicationEntity applicationEntity, List<FormApplicationResponse> formApplicationResponses) {
|
||||
ApplicationFormEntity applicationFormEntity = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), formEntity.getId());
|
||||
if(applicationFormEntity!=null) {
|
||||
List<ApplicationFormFieldEntity> applicationFormFieldEntities = applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
|
||||
FormApplicationResponse formApplicationResponse = createFormApplicationResponse(formEntity);
|
||||
List<ApplicationFormFieldResponseBean> applicationFormFieldResponseBeans = convertApplicationFormFieldEntitiesToApplicationFormFieldResponseBeans(applicationFormFieldEntities, applicationFormEntity.getId());
|
||||
|
||||
formApplicationResponse.setFormFields(applicationFormFieldResponseBeans);
|
||||
formApplicationResponses.add(formApplicationResponse);
|
||||
}
|
||||
}
|
||||
|
||||
private ApplicationGetResponseBean createApplicationGetResponseBean(ApplicationEntity applicationEntity, List<FormEntity> formEntities, List<FormApplicationResponse> formApplicationResponses) {
|
||||
ApplicationGetResponseBean applicationGetResponseBean =createApplicationGetResponseBean(applicationEntity);
|
||||
applicationGetResponseBean.setForm(formApplicationResponses);
|
||||
return applicationGetResponseBean;
|
||||
}
|
||||
|
||||
private ApplicationGetResponseBean createApplicationGetResponseBean(ApplicationEntity applicationEntity) {
|
||||
ApplicationGetResponseBean applicationGetResponseBean = new ApplicationGetResponseBean();
|
||||
applicationGetResponseBean.setId(applicationEntity.getId());
|
||||
applicationGetResponseBean.setStatus(applicationEntity.getStatus());
|
||||
applicationGetResponseBean.setComments(applicationEntity.getComments());
|
||||
applicationGetResponseBean.setSubmissionDate(applicationEntity.getSubmissionDate());
|
||||
return applicationGetResponseBean;
|
||||
}
|
||||
|
||||
private FormApplicationResponse createFormApplicationResponse(FormEntity formEntity) {
|
||||
FormApplicationResponse formApplicationResponse=new FormApplicationResponse();
|
||||
formApplicationResponse.setId(formEntity.getId());
|
||||
formApplicationResponse.setLabel(formEntity.getLabel());
|
||||
formApplicationResponse.setCallId(formEntity.getCall().getId());
|
||||
formApplicationResponse.setContent(Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class));
|
||||
return formApplicationResponse;
|
||||
}
|
||||
|
||||
public ApplicationResponse createApplicationByCallId(ApplicationRequest applicationRequest,Long callId,UserEntity userEntity){
|
||||
CallEntity call=callService.validateCall(callId);
|
||||
checkIfApplicationExists(call,userEntity);
|
||||
ApplicationEntity applicationEntity=saveApplicationEntity(createApplicationEntity(userEntity,call));
|
||||
ApplicationResponse applicationResponse=getApplicationResponse(applicationEntity);
|
||||
return applicationResponse;
|
||||
}
|
||||
public void checkIfApplicationExists(CallEntity call,UserEntity userEntity){
|
||||
ApplicationEntity applicationEntity=applicationRepository.findByUserIdAndCallIdAndIsDeletedFalse(userEntity.getId(),call.getId());
|
||||
if(applicationEntity!=null){
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_EXISTS));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user