From 38526ed303f6c640b905fa7781e0815118aa29d6 Mon Sep 17 00:00:00 2001 From: tszyszkowski Date: Thu, 13 Oct 2022 11:28:50 +0200 Subject: [PATCH] order created ext services --- .../controller/OrderCreatedController.java | 26 ++++++++++++++++ .../kafka/OrderCreatedProducer.java | 31 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/pl/adaptiveapps/serviceexternalserver/controller/OrderCreatedController.java create mode 100644 src/main/java/pl/adaptiveapps/serviceexternalserver/kafka/OrderCreatedProducer.java diff --git a/src/main/java/pl/adaptiveapps/serviceexternalserver/controller/OrderCreatedController.java b/src/main/java/pl/adaptiveapps/serviceexternalserver/controller/OrderCreatedController.java new file mode 100644 index 0000000..238d767 --- /dev/null +++ b/src/main/java/pl/adaptiveapps/serviceexternalserver/controller/OrderCreatedController.java @@ -0,0 +1,26 @@ +package pl.adaptiveapps.serviceexternalserver.controller; + +import com.google.gson.Gson; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import pl.adaptiveapps.service.kafkamodel.msg.external.ordercreated.OrderCreatedMsg; +import pl.adaptiveapps.serviceexternalserver.kafka.NotesProducer; +import pl.adaptiveapps.serviceexternalserver.kafka.OrderCreatedProducer; + +@RequiredArgsConstructor +@RestController +public class OrderCreatedController { + + private final OrderCreatedProducer orderCreatedProducer; + private static final Logger logger = LoggerFactory.getLogger(OrderCreatedController.class); + + @PostMapping("/order-created") + public void postNote(@RequestBody OrderCreatedMsg orderCreatedMsg){ + logger.info("Receive order: {}", new Gson().toJson(orderCreatedMsg)); + orderCreatedProducer.sendMessage(orderCreatedMsg); + } +} diff --git a/src/main/java/pl/adaptiveapps/serviceexternalserver/kafka/OrderCreatedProducer.java b/src/main/java/pl/adaptiveapps/serviceexternalserver/kafka/OrderCreatedProducer.java new file mode 100644 index 0000000..b36b8db --- /dev/null +++ b/src/main/java/pl/adaptiveapps/serviceexternalserver/kafka/OrderCreatedProducer.java @@ -0,0 +1,31 @@ +package pl.adaptiveapps.serviceexternalserver.kafka; + +import com.google.gson.Gson; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.stereotype.Service; +import pl.adaptiveapps.service.kafkamodel.common.KafkaTopic; +import pl.adaptiveapps.service.kafkamodel.msg.external.NoteSavedMsg; +import pl.adaptiveapps.service.kafkamodel.msg.external.ordercreated.OrderCreatedMsg; + +import java.util.concurrent.ExecutionException; + +@Service +@RequiredArgsConstructor +public class OrderCreatedProducer { + private static final Logger logger = LoggerFactory.getLogger(OrderCreatedProducer.class); + + private final KafkaTemplate kafkaTemplate; + + public void sendMessage(OrderCreatedMsg orderCreatedMsg) { + try { + String message = new Gson().toJson(orderCreatedMsg); + var res = this.kafkaTemplate.send(KafkaTopic.ORDER_CREATED, message).get(); + logger.info(String.format("#### -> orderCreatedMsg message sent -> %s", res.getRecordMetadata().topic())); + } catch (InterruptedException | ExecutionException e) { + logger.error(e.getMessage(), e); + } + } +}