From 35dbbccf3effead6ad389cd14568296bfd59d42a Mon Sep 17 00:00:00 2001 From: Alexandr Shalaginov Date: Mon, 15 Jul 2024 14:13:10 +0300 Subject: [PATCH] SUPPORT-8381: some changes --- .../java/ervu/client/kafka/KafkaClient.java | 2 +- .../client/kafka/impl/KafkaClientImpl.java | 23 +++++++++---------- .../impl/ErvuFileUploadV2ServiceImpl.java | 20 ++++++++++++++-- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/backend/src/main/java/ervu/client/kafka/KafkaClient.java b/backend/src/main/java/ervu/client/kafka/KafkaClient.java index 16705b85..11d02142 100644 --- a/backend/src/main/java/ervu/client/kafka/KafkaClient.java +++ b/backend/src/main/java/ervu/client/kafka/KafkaClient.java @@ -4,5 +4,5 @@ package ervu.client.kafka; * @author Alexandr Shalaginov */ public interface KafkaClient { - void sendMessage(String message); + boolean sendMessage(String message); } diff --git a/backend/src/main/java/ervu/client/kafka/impl/KafkaClientImpl.java b/backend/src/main/java/ervu/client/kafka/impl/KafkaClientImpl.java index 265193c1..54d6493d 100644 --- a/backend/src/main/java/ervu/client/kafka/impl/KafkaClientImpl.java +++ b/backend/src/main/java/ervu/client/kafka/impl/KafkaClientImpl.java @@ -24,21 +24,20 @@ public class KafkaClientImpl implements KafkaClient { this.kafkaTemplate = kafkaTemplate; } - public void sendMessage(String message) { + public boolean sendMessage(String message) { if (this.kafkaTopic == null) { throw new RuntimeException("Property kafka.send.topic is null"); } - ProducerRecord record = new ProducerRecord<>("topic", message); - - ListenableFuture> future = this.kafkaTemplate.send(record); - future.addCallback( - (result) -> { - logger.debug("Success send message: {}", result); - }, - (throwable) -> { - logger.error("Fail send message.", throwable); - } - ); + ProducerRecord record = new ProducerRecord<>(this.kafkaTopic, message); + try { + this.kafkaTemplate.send(record).get(); + logger.debug("Success send record: {}", record); + return true; + } + catch (Exception exception) { + logger.error("Fail send message.", exception); + return false; + } } } diff --git a/backend/src/main/java/ervu/service/fileupload/impl/ErvuFileUploadV2ServiceImpl.java b/backend/src/main/java/ervu/service/fileupload/impl/ErvuFileUploadV2ServiceImpl.java index 18d1a1ba..d417a1a1 100644 --- a/backend/src/main/java/ervu/service/fileupload/impl/ErvuFileUploadV2ServiceImpl.java +++ b/backend/src/main/java/ervu/service/fileupload/impl/ErvuFileUploadV2ServiceImpl.java @@ -1,23 +1,39 @@ package ervu.service.fileupload.impl; import ervu.client.fileupload.ErvuFileUploadClient; +import ervu.client.kafka.KafkaClient; import ervu.service.fileupload.FileUploadV2Service; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; + /** * @author Alexandr Shalaginov */ @Service public class ErvuFileUploadV2ServiceImpl implements FileUploadV2Service { + private final KafkaClient kafkaClient; + private final SecurityContext securityContext; private final ErvuFileUploadClient ervuFileUploadClient; - public ErvuFileUploadV2ServiceImpl(ErvuFileUploadClient ervuFileUploadClient) { + public ErvuFileUploadV2ServiceImpl(ErvuFileUploadClient ervuFileUploadClient, + KafkaClient kafkaClient, + SecurityContext securityContext) { this.ervuFileUploadClient = ervuFileUploadClient; + this.kafkaClient = kafkaClient; + this.securityContext = securityContext; } @Override public boolean saveFile(MultipartFile multipartFile) { - return this.ervuFileUploadClient.uploadFile(multipartFile); + if (this.ervuFileUploadClient.uploadFile(multipartFile)) { + String message = "{username='" + this.securityContext.getCurrentUsername() + + "',filename='" + multipartFile.getName() + "'}"; + return this.kafkaClient.sendMessage(message); + } + else { + return false; + } } }