115 lines
5.6 KiB
Java
115 lines
5.6 KiB
Java
package net.gepafin.tendermanagement.dao;
|
|
|
|
import net.gepafin.tendermanagement.config.Translator;
|
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
import net.gepafin.tendermanagement.entities.FormFieldEntity;
|
|
import net.gepafin.tendermanagement.model.request.FormFieldRequest;
|
|
import net.gepafin.tendermanagement.model.request.SettingRequestBean;
|
|
import net.gepafin.tendermanagement.model.response.FormFieldResponseBean;
|
|
import net.gepafin.tendermanagement.model.response.SettingResponseBean;
|
|
import net.gepafin.tendermanagement.repositories.FormFieldRepository;
|
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
|
import net.gepafin.tendermanagement.util.Utils;
|
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
@Component
|
|
public class FormFieldDao {
|
|
|
|
@Autowired
|
|
private FormFieldRepository formFieldRepository;
|
|
|
|
public FormFieldEntity convertFormFieldRequestToFormFieldEntity(FormFieldRequest formFieldRequest) {
|
|
FormFieldEntity formFieldEntity = new FormFieldEntity();
|
|
formFieldEntity.setLabel(formFieldRequest.getLabel());
|
|
formFieldEntity.setName(formFieldRequest.getName());
|
|
formFieldEntity.setDescription(formFieldRequest.getDescription());
|
|
formFieldEntity.setSortOrder(formFieldRequest.getSortOrder());
|
|
formFieldEntity.setValidators(Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
|
formFieldEntity.setSettings(setSettingRequestBean(formFieldRequest.getSettings()));
|
|
formFieldEntity = saveFormFieldEntity(formFieldEntity);
|
|
return formFieldEntity;
|
|
}
|
|
|
|
public FormFieldResponseBean convertFormFieldEntityToFormFieldResponseBean(FormFieldEntity formFieldEntity) {
|
|
FormFieldResponseBean formFieldResponseBean = new FormFieldResponseBean();
|
|
formFieldResponseBean.setId(formFieldEntity.getId());
|
|
formFieldResponseBean.setName(formFieldEntity.getName());
|
|
formFieldResponseBean.setDescription(formFieldEntity.getDescription());
|
|
formFieldResponseBean.setSortOrder(formFieldEntity.getSortOrder());
|
|
formFieldResponseBean
|
|
.setSettings(Utils.convertJsonStringToList(formFieldEntity.getSettings(), SettingResponseBean.class));
|
|
formFieldResponseBean.setLabel(formFieldEntity.getLabel());
|
|
formFieldResponseBean.setValidators(Utils.convertIntoJson(formFieldEntity.getValidators()));
|
|
return formFieldResponseBean;
|
|
}
|
|
|
|
public FormFieldEntity saveFormFieldEntity(FormFieldEntity formFieldEntity) {
|
|
formFieldEntity = formFieldRepository.save(formFieldEntity);
|
|
return formFieldEntity;
|
|
}
|
|
|
|
public void validateFormField(FormFieldRequest formFieldRequest) {
|
|
if (formFieldRequest.getSettings() == null || formFieldRequest.getLabel() == null) {
|
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
|
Translator.toLocale(GepafinConstant.REQUIRED_PARAMETER_NOT_FOUND_FOR_FORM_FIELD));
|
|
}
|
|
}
|
|
|
|
public FormFieldResponseBean createFormField(FormFieldRequest formFieldRequest) {
|
|
validateFormField(formFieldRequest);
|
|
FormFieldEntity formFieldEntity = convertFormFieldRequestToFormFieldEntity(formFieldRequest);
|
|
return convertFormFieldEntityToFormFieldResponseBean(formFieldEntity);
|
|
}
|
|
|
|
public FormFieldResponseBean updateFormField(Long formFieldId, FormFieldRequest formFieldRequest) {
|
|
FormFieldEntity formFieldEntity = validateFormField(formFieldId);
|
|
Utils.setIfUpdated(formFieldEntity::getName, formFieldEntity::setName, formFieldRequest.getName());
|
|
Utils.setIfUpdated(formFieldEntity::getLabel, formFieldEntity::setLabel, formFieldRequest.getLabel());
|
|
Utils.setIfUpdated(formFieldEntity::getDescription, formFieldEntity::setDescription, formFieldRequest.getDescription());
|
|
Utils.setIfUpdated(formFieldEntity::getSortOrder, formFieldEntity::setSortOrder, formFieldRequest.getSortOrder());
|
|
Utils.setIfUpdated(formFieldEntity::getSettings, formFieldEntity::setSettings,
|
|
setSettingRequestBean(formFieldRequest.getSettings()));
|
|
Utils.setIfUpdated(formFieldEntity::getValidators, formFieldEntity::setValidators,
|
|
Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
|
formFieldEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
|
formFieldEntity = saveFormFieldEntity(formFieldEntity);
|
|
return convertFormFieldEntityToFormFieldResponseBean(formFieldEntity);
|
|
}
|
|
|
|
public FormFieldEntity validateFormField(Long formFieldId) {
|
|
FormFieldEntity formFieldEntity = formFieldRepository.findById(formFieldId)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.FORM_FIELD_NOT_FOUND)));
|
|
return formFieldEntity;
|
|
}
|
|
|
|
public FormFieldResponseBean getFormFieldEntityById(Long formFieldId) {
|
|
FormFieldEntity formEntity = validateFormField(formFieldId);
|
|
return convertFormFieldEntityToFormFieldResponseBean(formEntity);
|
|
}
|
|
|
|
public void deleteFormById(Long formFieldId) {
|
|
FormFieldEntity formEntity = validateFormField(formFieldId);
|
|
formFieldRepository.delete(formEntity);
|
|
}
|
|
|
|
public String setSettingRequestBean(List<SettingRequestBean> settingRequestBeans) {
|
|
return Utils.convertListToJsonString(settingRequestBeans);
|
|
}
|
|
|
|
public List<FormFieldResponseBean> getAllFormField() {
|
|
List<FormFieldEntity> formFieldEntities = formFieldRepository.findAll();
|
|
List<FormFieldResponseBean> formFieldResponseBeans = formFieldEntities.stream()
|
|
.map(req -> convertFormFieldEntityToFormFieldResponseBean(req)).collect(Collectors.toList());
|
|
return formFieldResponseBeans;
|
|
}
|
|
}
|