projects
/
demos
/
kafka
/
demos-kafka-payment-system-transfer
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
WIP
[demos/kafka/demos-kafka-payment-system-transfer]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
payment
/
transfer
/
ports
/
TransferService.java
diff --git
a/src/main/java/de/juplo/kafka/payment/transfer/ports/TransferService.java
b/src/main/java/de/juplo/kafka/payment/transfer/ports/TransferService.java
index
d4eb3ef
..
7ee0432
100644
(file)
--- a/
src/main/java/de/juplo/kafka/payment/transfer/ports/TransferService.java
+++ b/
src/main/java/de/juplo/kafka/payment/transfer/ports/TransferService.java
@@
-1,6
+1,7
@@
package de.juplo.kafka.payment.transfer.ports;
package de.juplo.kafka.payment.transfer.ports;
+import de.juplo.kafka.payment.transfer.adapter.TransferStateChangedEvent;
import de.juplo.kafka.payment.transfer.domain.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import de.juplo.kafka.payment.transfer.domain.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@
-19,36
+20,35
@@
public class TransferService implements CreateTransferUseCase, HandleStateChange
private final MessagingService messagingService;
@Override
private final MessagingService messagingService;
@Override
- public
void
create(Long id, Long payer, Long payee, Integer amount)
+ public
Optional<TransferStateChangedEvent>
create(Long id, Long payer, Long payee, Integer amount)
{
{
+ return
repository
.get(id)
repository
.get(id)
- .ifPresentOrElse(
- stored -> log.info(
+ .flatMap(
+ stored ->
+ {log.info(
"transfer already exisits: {}, ignoring: id={}, payer={}, payee={}, amount={}",
stored,
payer,
payee,
"transfer already exisits: {}, ignoring: id={}, payer={}, payee={}, amount={}",
stored,
payer,
payee,
- amount),
- () ->
+ amount);
+ return Optional.empty();
+ })
+ .or(() ->
{
{
- Transfer transfer =
- Transfer
+ log.info("creating transfer: {}", transfer);
+ return
+ TransferStateChangedEvent
.builder()
.builder()
- .id(id)
- .payer(payer)
- .payee(payee)
- .amount(amount)
+ .id(transfer.getId())
+ .state(CREATED)
.build();
.build();
-
- log.info("creating transfer: {}", transfer);
- repository.store(transfer);
- messagingService.send(transfer.getId(), CREATED);
});
}
@Override
});
}
@Override
- public
void
handleStateChange(Long id, Transfer.State state)
+ public
TransferStateChangedEvent
handleStateChange(Long id, Transfer.State state)
{
get(id)
.ifPresentOrElse(
{
get(id)
.ifPresentOrElse(