- .created(URI.create(PATH + "/" + transferDTO.getId()))
- .build())
- .thenAccept(
- responseEntity -> result.setResult(responseEntity))
- .exceptionally(
- e ->
- {
- result.setErrorResult(e);
- return null;
- });
+ .ok()
+ .location(location(transferDTO))
+ .build()))
+ .or(() ->
+ Optional.of(
+ messagingService
+ .send(
+ Transfer
+ .builder()
+ .id(transferDTO.getId())
+ .payer(transferDTO.getPayer())
+ .payee(transferDTO.getPayee())
+ .amount(transferDTO.getAmount())
+ .state(Transfer.State.RECEIVED)
+ .build())
+ .thenApply($ ->
+ ResponseEntity
+ .created(location(transferDTO))
+ .build())))
+ .get()
+ .thenAccept(responseEntity -> result.setResult(responseEntity))
+ .exceptionally(e ->
+ {
+ result.setErrorResult(e);
+ return null;
+ });