- TransferConsumer transferConsumer =
- new TransferConsumer(properties.topic, consumer, executorService, mapper, transferService);
- transferConsumer.start();
- return transferConsumer;
+ return
+ new TransferConsumer(
+ properties.topic,
+ consumer,
+ mapper,
+ new TransferConsumer.ConsumerUseCases() {
+ @Override
+ public void create(Long id, Long payer, Long payee, Integer amount)
+ {
+ productionTransferService.create(id, payer, payee, amount);
+ }
+
+ @Override
+ public Optional<Transfer> get(Long id)
+ {
+ return productionTransferService.get(id);
+ }
+
+ @Override
+ public void handleStateChange(Long id, Transfer.State state)
+ {
+ productionTransferService.handleStateChange(id, state);
+ }
+ },
+ new TransferConsumer.ConsumerUseCases() {
+ @Override
+ public void create(Long id, Long payer, Long payee, Integer amount)
+ {
+ restoreTransferService.create(id, payer, payee, amount);
+ }
+
+ @Override
+ public Optional<Transfer> get(Long id)
+ {
+ return restoreTransferService.get(id);
+ }
+
+ @Override
+ public void handleStateChange(Long id, Transfer.State state)
+ {
+ restoreTransferService.handleStateChange(id, state);
+ }
+ });