X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fusers%2FUsersController.java;h=84aaf37759d2556b33f09f785106d77487f59276;hb=ac0f8a17382f8951bf86148bb66a732d283d9990;hp=4e64524aa1effbba05f5753d6e9a7afec6238bda;hpb=fc7b9dfe12a1401e7365d85ec723364750bdcd3d;p=demos%2Fkafka%2Fwordcount diff --git a/src/main/java/de/juplo/kafka/wordcount/users/UsersController.java b/src/main/java/de/juplo/kafka/wordcount/users/UsersController.java index 4e64524..84aaf37 100644 --- a/src/main/java/de/juplo/kafka/wordcount/users/UsersController.java +++ b/src/main/java/de/juplo/kafka/wordcount/users/UsersController.java @@ -2,6 +2,7 @@ package de.juplo.kafka.wordcount.users; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import de.juplo.kafka.wordcount.avro.User; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import org.springframework.http.HttpStatus; @@ -18,13 +19,13 @@ public class UsersController { private final String topic; private final ObjectMapper mapper; - private final KafkaProducer producer; + private final KafkaProducer producer; public UsersController( UsersApplicationProperties properties, ObjectMapper mapper, - KafkaProducer producer) + KafkaProducer producer) { this.topic = properties.getTopic(); this.mapper = mapper; @@ -38,20 +39,28 @@ public class UsersController MimeTypeUtils.APPLICATION_JSON_VALUE }, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) - DeferredResult> post(@RequestBody User user) throws JsonProcessingException + DeferredResult> post(@RequestBody UserRequest userRequest) throws JsonProcessingException { DeferredResult> result = new DeferredResult<>(); - String value = mapper.writeValueAsString(user); - ProducerRecord record = new ProducerRecord<>(topic, user.getUsername(), value); + ProducerRecord record = + new ProducerRecord<>( + topic, + userRequest.getUsername(), + User + .newBuilder() + .setUsername(userRequest.getUsername()) + .setFirstName(userRequest.getFirstName()) + .setLastName(userRequest.getLastName()) + .build()); producer.send(record, (metadata, exception) -> { if (metadata != null) { result.setResult( ResponseEntity.ok(UsersResult.of( - user.getUsername(), - user, + userRequest.getUsername(), + userRequest, topic, metadata.partition(), metadata.offset(), @@ -64,8 +73,8 @@ public class UsersController ResponseEntity .internalServerError() .body(UsersResult.of( - user.getUsername(), - user, + userRequest.getUsername(), + userRequest, topic, null, null,