WIP
[demos/kafka/demos-kafka-payment-system-transfer] / transfer / src / main / java / de / juplo / kafka / payment / transfer / controller / TransferController.java
1 package de.juplo.kafka.payment.transfer.controller;
2
3
4 import de.juplo.kafka.payment.transfer.api.Transfer;
5 import de.juplo.kafka.payment.transfer.impl.TransferServiceImpl;
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;
13
14 import javax.validation.Valid;
15 import java.net.URI;
16
17
18 @RestController
19 @RequiredArgsConstructor
20 @Slf4j
21 public class TransferController
22 {
23   public final static String PATH = "/transfers";
24
25   private final TransferServiceImpl service;
26
27
28   @PostMapping(
29       path = PATH,
30       consumes = MediaType.APPLICATION_JSON_VALUE,
31       produces = MediaType.APPLICATION_JSON_VALUE)
32   public ResponseEntity<?> transfer(@Valid @RequestBody Transfer transfer)
33   {
34     service.initiate(transfer);
35     return ResponseEntity.created(URI.create(PATH + transfer.getId())).build();
36   }
37 }