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.FormTemplateRequest; import net.gepafin.tendermanagement.model.response.FormTemplateResponseBean; import net.gepafin.tendermanagement.repositories.FormTemplateRepository; import net.gepafin.tendermanagement.service.FormTemplateService; import net.gepafin.tendermanagement.util.ObjectUtils; 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; @Component public class FormTemplateDao { @Autowired private FormTemplateRepository formTemplateRepository; @Autowired private FormTemplateService formTemplateService; public FormTemplateEntity convertFormTemplateRequestToFormTemplateRequest(FormTemplateRequest formTemplateRequest){ FormTemplateEntity formTemplateEntity=new FormTemplateEntity(); formTemplateEntity.setContent(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(formTemplateEntity.getContent()); formTemplateResponseBean.setLabel(formTemplateEntity.getLabel()); formTemplateResponseBean.setCreatedDate(formTemplateEntity.getCreatedDate()); formTemplateResponseBean.setUpdatedDate(formTemplateEntity.getUpdatedDate()); 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 = formTemplateService.getFormEntityById(formTemplateId); ObjectUtils.setIfUpdated(formTemplateEntity::getLabel,formTemplateEntity::setLabel,formTemplateRequest.getLabel()); ObjectUtils.setIfUpdated(formTemplateEntity::getContent,formTemplateEntity::setContent,formTemplateRequest.getContent()); formTemplateEntity=saveFormTemplateEntity(formTemplateEntity); return convertFormTemplateEntityToFormTemplateResponseBean(formTemplateEntity); } public FormTemplateEntity getFormTemplateEntity(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 = formTemplateService.getFormEntityById(formTemplateId); return convertFormTemplateEntityToFormTemplateResponseBean(formTemplateEntity); } public void deleteFormTemplateById(Long formTemplateId){ FormTemplateEntity formTemplateEntity=formTemplateService.getFormEntityById(formTemplateId); formTemplateRepository.delete(formTemplateEntity); } }