in ddm-notification-service/src/main/java/com/epam/digital/data/platform/notification/service/SaveDiiaNotificationTemplateService.java [65:87]
public SaveNotificationTemplateOutputDto save(
String channel, String name, SaveNotificationTemplateInputDto inputDto) {
log.info("Processing template {} for channel {}", name, channel);
var diiaPublishTemplateRequestDto = createRequestDto(inputDto);
var checksum = DigestUtils.sha256Hex(
objectMapper.writeValueAsString(diiaPublishTemplateRequestDto));
NotificationTemplate template;
List<NotificationTemplateAttribute> attributes;
var templateOpt = notificationTemplateRepository.findByNameAndChannel(name, channel);
if (templateOpt.isEmpty() || !Objects.equals(templateOpt.get().getChecksum(), checksum)) {
var externalTemplateId =
diiaService.publishTemplate(diiaPublishTemplateRequestDto).getTemplateId();
template = saveTemplate(channel, name, inputDto, externalTemplateId, templateOpt, checksum);
attributes = saveAttributes(template.getId(), inputDto);
} else {
template = templateOpt.get();
attributes = notificationTemplateAttributeRepository.findByTemplateId(template.getId());
}
return buildOutputDtoFromDb(template, attributes);
}