package com.sungardas.enhancedsnapshots.dto.converter; import com.sungardas.enhancedsnapshots.aws.dynamodb.model.MailConfigurationDocument; import com.sungardas.enhancedsnapshots.dto.MailConfigurationDto; import com.sungardas.enhancedsnapshots.service.CryptoService; import org.springframework.beans.BeanUtils; public class MailConfigurationDocumentConverter { private MailConfigurationDocumentConverter() { } public static MailConfigurationDocument toMailConfigurationDocument(MailConfigurationDto dto, CryptoService cryptoService, String configurationId, String oldPassword) { if (dto != null) { MailConfigurationDocument configurationDocument = new MailConfigurationDocument(); BeanUtils.copyProperties(dto, configurationDocument); if (dto.getEvents() != null) { BeanUtils.copyProperties(dto.getEvents(), configurationDocument.getEvents()); } if (configurationDocument.getPassword() != null) { configurationDocument.setPassword(cryptoService.encrypt(configurationId, configurationDocument.getPassword())); } else { configurationDocument.setPassword(oldPassword); } //DynamoDB does not support empty sets if (configurationDocument.getRecipients().isEmpty()) { configurationDocument.setRecipients(null); } return configurationDocument; } else { return null; } } public static MailConfigurationDto toMailConfigurationDto(MailConfigurationDocument document) { if (document != null) { MailConfigurationDto mailConfigurationDto = new MailConfigurationDto(); BeanUtils.copyProperties(document, mailConfigurationDto); MailConfigurationDto.MailNotificationEvents events = new MailConfigurationDto.MailNotificationEvents(); BeanUtils.copyProperties(document.getEvents(), events); mailConfigurationDto.setEvents(events); mailConfigurationDto.setPassword(null); return mailConfigurationDto; } else { return null; } } }