diff --git a/src/main/java/ru/soune/nocopy/kafka/MonitoringResultListener.java b/src/main/java/ru/soune/nocopy/kafka/MonitoringResultListener.java index a4ab460..6e3ef07 100644 --- a/src/main/java/ru/soune/nocopy/kafka/MonitoringResultListener.java +++ b/src/main/java/ru/soune/nocopy/kafka/MonitoringResultListener.java @@ -1,5 +1,6 @@ package ru.soune.nocopy.kafka; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.kafka.annotation.KafkaListener; @@ -14,9 +15,19 @@ public class MonitoringResultListener { private final ViolationService violationService; + private final ObjectMapper objectMapper; + @KafkaListener(topics = "monitoring-results", groupId = "dashboard") - public void handleCommand(YandexSearchResponse.ImageResult imageResult) { - violationService.processViolation(imageResult.getUrl(), imageResult.getHost(), imageResult.getPageUrl(), - imageResult.getFileId(), imageResult.getPageTitle()); + public void handleCommand(String message) { + try { + YandexSearchResponse.ImageResult imageResult = objectMapper.readValue(message, + YandexSearchResponse.ImageResult.class); + + violationService.processViolation(imageResult.getUrl(), imageResult.getHost(), imageResult.getPageUrl(), + imageResult.getFileId(), imageResult.getPageTitle() + ); + } catch (Exception e) { + log.error("Error parsing message: {}", e.getMessage()); + } } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 2e0648a..63358bf 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -4,7 +4,7 @@ spring: consumer: group-id: dashboard key-deserializer: org.apache.kafka.common.serialization.StringDeserializer - value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + value-deserializer: org.apache.kafka.common.serialization.StringDeserializer properties: spring.json.trusted.packages: "*" producer: