TransferController sends a message, instead of calling TransferService
[demos/kafka/demos-kafka-payment-system-transfer] / src / main / java / de / juplo / kafka / payment / transfer / adapter / TransferDTO.java
1 package de.juplo.kafka.payment.transfer.adapter;
2
3 import de.juplo.kafka.payment.transfer.domain.Transfer;
4 import lombok.Builder;
5 import lombok.Data;
6
7 import javax.validation.constraints.Min;
8 import javax.validation.constraints.NotNull;
9
10
11 /**
12  * Simple DTO used by the REST interface
13  */
14 @Data
15 @Builder
16 public class TransferDTO
17 {
18   @NotNull(message = "Cannot be null")
19   @Min(value = 1, message = "A valid transfer id must be a positive number")
20   private Long id;
21   @NotNull(message = "Cannot be null")
22   @Min(value = 1, message = "A valid bank account id must be a positive number")
23   private Long payer;
24   @NotNull(message = "Cannot be null")
25   @Min(value = 1, message = "A valid bank account id must be a positive number")
26   private Long payee;
27   @NotNull(message = "Cannot be null")
28   @Min(value = 1, message = "The amount of a transfer must be a positv value")
29   private Integer amount;
30
31   private Transfer.State state;
32
33
34   public static TransferDTO of(Transfer transfer)
35   {
36     return
37         TransferDTO
38             .builder()
39             .id(transfer.getId())
40             .payer(transfer.getPayer())
41             .payee(transfer.getPayee())
42             .amount(transfer.getAmount())
43             .state(transfer.getState())
44             .build();
45   }
46 }