103 lines
5.0 KiB
Java
103 lines
5.0 KiB
Java
package net.gepafin.tendermanagement.dao;
|
|
|
|
import net.gepafin.tendermanagement.config.Translator;
|
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
import net.gepafin.tendermanagement.entities.FormTemplateEntity;
|
|
import net.gepafin.tendermanagement.model.request.ContentRequestBean;
|
|
import net.gepafin.tendermanagement.model.request.FormTemplateRequest;
|
|
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
|
import net.gepafin.tendermanagement.model.response.FormTemplateResponseBean;
|
|
import net.gepafin.tendermanagement.repositories.FormTemplateRepository;
|
|
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 FormTemplateDao {
|
|
|
|
@Autowired
|
|
private FormTemplateRepository formTemplateRepository;
|
|
|
|
public FormTemplateEntity convertFormTemplateRequestToFormTemplateRequest(FormTemplateRequest formTemplateRequest) {
|
|
FormTemplateEntity formTemplateEntity = new FormTemplateEntity();
|
|
formTemplateEntity.setContent(setContentResponseBean(formTemplateRequest.getContent()));
|
|
formTemplateEntity.setLabel(formTemplateRequest.getLabel());
|
|
formTemplateEntity = saveFormTemplateEntity(formTemplateEntity);
|
|
return formTemplateEntity;
|
|
}
|
|
|
|
public FormTemplateEntity saveFormTemplateEntity(FormTemplateEntity formTemplateEntity) {
|
|
formTemplateEntity = formTemplateRepository.save(formTemplateEntity);
|
|
return formTemplateEntity;
|
|
}
|
|
|
|
public FormTemplateResponseBean convertFormTemplateEntityToFormTemplateResponseBean(
|
|
FormTemplateEntity formTemplateEntity) {
|
|
FormTemplateResponseBean formTemplateResponseBean = new FormTemplateResponseBean();
|
|
formTemplateResponseBean.setId(formTemplateEntity.getId());
|
|
formTemplateResponseBean
|
|
.setContent(Utils.convertJsonStringToList(formTemplateEntity.getContent(), ContentResponseBean.class));
|
|
formTemplateResponseBean.setLabel(formTemplateEntity.getLabel());
|
|
return formTemplateResponseBean;
|
|
}
|
|
|
|
public FormTemplateResponseBean createFormTemplate(FormTemplateRequest formTemplateRequest) {
|
|
validateFormTemplate(formTemplateRequest);
|
|
FormTemplateEntity formTemplateEntity = convertFormTemplateRequestToFormTemplateRequest(formTemplateRequest);
|
|
return convertFormTemplateEntityToFormTemplateResponseBean(formTemplateEntity);
|
|
}
|
|
|
|
public void validateFormTemplate(FormTemplateRequest formTemplateRequest) {
|
|
if (formTemplateRequest.getContent() == null || formTemplateRequest.getLabel() == null) {
|
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
|
Translator.toLocale(GepafinConstant.REQUIRED_PARAMETER_NOT_FOUND_FOR_FORM_TEMPLATE));
|
|
}
|
|
}
|
|
|
|
public FormTemplateResponseBean updateFormTemplate(Long formTemplateId, FormTemplateRequest formTemplateRequest) {
|
|
FormTemplateEntity formTemplateEntity = validateFormTemplate(formTemplateId);
|
|
Utils.setIfUpdated(formTemplateEntity::getLabel, formTemplateEntity::setLabel, formTemplateRequest.getLabel());
|
|
Utils.setIfUpdated(formTemplateEntity::getContent, formTemplateEntity::setContent,
|
|
setContentResponseBean(formTemplateRequest.getContent()));
|
|
formTemplateEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
|
formTemplateEntity = saveFormTemplateEntity(formTemplateEntity);
|
|
return convertFormTemplateEntityToFormTemplateResponseBean(formTemplateEntity);
|
|
}
|
|
|
|
public FormTemplateEntity validateFormTemplate(Long formTemplateId) {
|
|
FormTemplateEntity formTemplateEntity = formTemplateRepository.findById(formTemplateId)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.FORM_TEMPLATE_NOT_FOUND)));
|
|
return formTemplateEntity;
|
|
}
|
|
|
|
public FormTemplateResponseBean getFormTemplateEntityById(Long formTemplateId) {
|
|
FormTemplateEntity formTemplateEntity = validateFormTemplate(formTemplateId);
|
|
return convertFormTemplateEntityToFormTemplateResponseBean(formTemplateEntity);
|
|
}
|
|
|
|
public void deleteFormTemplateById(Long formTemplateId) {
|
|
FormTemplateEntity formTemplateEntity = validateFormTemplate(formTemplateId);
|
|
formTemplateRepository.delete(formTemplateEntity);
|
|
}
|
|
|
|
public String setContentResponseBean(List<ContentRequestBean> contentRequestBeans) {
|
|
return Utils.convertListToJsonString(contentRequestBeans);
|
|
}
|
|
|
|
public List<FormTemplateResponseBean> getAllFormTemplate() {
|
|
List<FormTemplateEntity> formTemplateEntities = formTemplateRepository.findAll();
|
|
List<FormTemplateResponseBean> formTemplateResponseBeans = formTemplateEntities.stream()
|
|
.map(req -> convertFormTemplateEntityToFormTemplateResponseBean(req)).collect(Collectors.toList());
|
|
return formTemplateResponseBeans;
|
|
}
|
|
}
|