import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.async.DeferredResult;
+import javax.validation.Valid;
+
@RestController
public class TransferService
{
private final static Logger LOG = LoggerFactory.getLogger(TransferService.class);
- private final KafkaProducer<UUID, Order> producer;
+ private final KafkaProducer<UUID, TransferBean> producer;
private final String topic;
private final String path;
TransferService(
- final KafkaProducer<UUID,Order> producer,
+ final KafkaProducer<UUID, TransferBean> producer,
final TransferServiceProperties properties)
{
this.producer = producer;
path = "/orders",
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.TEXT_PLAIN_VALUE)
- public DeferredResult<ResponseEntity<?>> placeOrder(@Valid @RequestBody OrderBean order)
+ public DeferredResult<ResponseEntity<?>> placeOrder(@Valid @RequestBody TransferBean transfer)
{
DeferredResult<ResponseEntity<?>> result = new DeferredResult<>();
try
{
UUID uuid = UUID.randomUUID();
- ProducerRecord<UUID, Order> record =
+ ProducerRecord<UUID, TransferBean> record =
new ProducerRecord<>(
topic,
uuid,
- Order
- .newBuilder()
- .setId(uuid.toString())
- .setState(OrderState.CREATED)
- .setCustomerId(order.getCustomerId())
- .setOrderId(order.getId())
- .setProductId(order.getProductId())
- .setQuantity(order.getQuantity())
+ Transfer
+ .new
+ .id(transfer.getId().toString())
+ .setState(TransferState.CREATED)
+ .setCustomerId(transfer.getCustomerId())
+ .setOrderId(transfer.getId())
+ .setProductId(transfer.getProductId())
+ .setQuantity(transfer.getQuantity())
.build());
producer.send(record, (metadata, exception) ->
{
if (exception != null)
{
- LOG.error("Could not place order {}: {}", order, exception.toString());
+ LOG.error("Could not place order {}: {}", transfer, exception.toString());
result.setErrorResult(exception);
return;
}