public SaveNotificationTemplateOutputDto save()

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);
  }