1 package de.juplo.kafka.payment.transfer.controller;
4 import de.juplo.kafka.payment.transfer.domain.Transfer;
5 import de.juplo.kafka.payment.transfer.domain.TransferService;
6 import lombok.RequiredArgsConstructor;
7 import lombok.extern.slf4j.Slf4j;
8 import org.springframework.http.MediaType;
9 import org.springframework.http.ResponseEntity;
10 import org.springframework.web.bind.annotation.PostMapping;
11 import org.springframework.web.bind.annotation.RequestBody;
12 import org.springframework.web.bind.annotation.RestController;
14 import javax.validation.Valid;
19 @RequiredArgsConstructor
21 public class TransferController
23 public final static String PATH = "/transfers";
25 private final TransferService service;
30 consumes = MediaType.APPLICATION_JSON_VALUE,
31 produces = MediaType.APPLICATION_JSON_VALUE)
32 public ResponseEntity<?> transfer(@Valid @RequestBody TransferRequest transferRequest)
37 .id(transferRequest.getId())
38 .payer(transferRequest.getPayer())
39 .payee(transferRequest.getPayee())
40 .amount(transferRequest.getAmount())
43 service.initiate(transfer);
45 return ResponseEntity.created(URI.create(PATH + transferRequest.getId())).build();