X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=transfer%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fpayment%2Ftransfer%2FTransferService.java;h=9e72af163c9f2b21caa226ce256e6b6d7a9c98e5;hb=192d9b20969fbbbe748430f2cb6e780916321287;hp=1b81028432ec6f5dc692020b1fdbeab170f5b4c5;hpb=4f564193aef1e81919d90fa638c1ce1490a78c07;p=demos%2Fkafka%2Fdemos-kafka-payment-system-setup diff --git a/transfer/src/main/java/de/juplo/kafka/payment/transfer/TransferService.java b/transfer/src/main/java/de/juplo/kafka/payment/transfer/TransferService.java index 1b81028..9e72af1 100644 --- a/transfer/src/main/java/de/juplo/kafka/payment/transfer/TransferService.java +++ b/transfer/src/main/java/de/juplo/kafka/payment/transfer/TransferService.java @@ -1,11 +1,7 @@ package de.juplo.kafka.payment.transfer; -import java.net.URI; -import java.util.UUID; - -import de.juplo.kafka.payment.avro.Order; -import de.juplo.kafka.payment.avro.OrderState; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import org.slf4j.Logger; @@ -18,6 +14,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.DeferredResult; import javax.validation.Valid; +import java.net.URI; +import java.util.UUID; @RestController @@ -25,45 +23,39 @@ public class TransferService { private final static Logger LOG = LoggerFactory.getLogger(TransferService.class); - private final KafkaProducer producer; + private final KafkaProducer producer; + private final ObjectMapper mapper; private final String topic; private final String path; TransferService( - final KafkaProducer producer, + final KafkaProducer producer, + final ObjectMapper mapper, final TransferServiceProperties properties) { this.producer = producer; + this.mapper = mapper; this.topic = properties.getTopic(); this.path = properties.getPath(); } @PostMapping( - path = "/orders", - consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, + path = "/transfer", + consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.TEXT_PLAIN_VALUE) - public DeferredResult> placeOrder(@Valid @RequestBody TransferBean transfer) + public DeferredResult> transfer(@Valid @RequestBody Transfer transfer) { DeferredResult> result = new DeferredResult<>(); try { - UUID uuid = UUID.randomUUID(); - ProducerRecord record = + ProducerRecord record = new ProducerRecord<>( - topic, - uuid, - Transfer - .new - .id(transfer.getId().toString()) - .setState(TransferState.CREATED) - .setCustomerId(transfer.getCustomerId()) - .setOrderId(transfer.getId()) - .setProductId(transfer.getProductId()) - .setQuantity(transfer.getQuantity()) - .build()); + topic, + transfer.getId(), + mapper.writeValueAsString(transfer)); producer.send(record, (metadata, exception) -> { @@ -74,7 +66,7 @@ public class TransferService return; } - result.setResult(ResponseEntity.created(URI.create(path + uuid)).build()); + result.setResult(ResponseEntity.created(URI.create(path + transfer.getId())).build()); }); } catch (Exception e)