From 2204c506c1c0bf4e6143002fb7cb1f1a6ef99219 Mon Sep 17 00:00:00 2001 From: Oleg Zhymolokhov Date: Mon, 26 Nov 2018 12:58:38 +0200 Subject: [PATCH] mint-fix: Account funding request changed to be asynchronous. --- .../java/com/nynja/walletservice/constant/Constants.java | 1 + .../nynja/walletservice/controller/TokenController.java | 9 ++++----- .../com/nynja/walletservice/service/TokenService.java | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/nynja/walletservice/constant/Constants.java b/src/main/java/com/nynja/walletservice/constant/Constants.java index 6313d29..1e72000 100644 --- a/src/main/java/com/nynja/walletservice/constant/Constants.java +++ b/src/main/java/com/nynja/walletservice/constant/Constants.java @@ -20,6 +20,7 @@ public interface Constants { String CREATED = "Created"; String DELETED = "Deleted"; String RETRIEVED = "Entity retrieved."; + String ACCEPTED = "Accepted"; String TOKEN_PREFIX = "JWTOwner "; } diff --git a/src/main/java/com/nynja/walletservice/controller/TokenController.java b/src/main/java/com/nynja/walletservice/controller/TokenController.java index 2b1016f..5718705 100644 --- a/src/main/java/com/nynja/walletservice/controller/TokenController.java +++ b/src/main/java/com/nynja/walletservice/controller/TokenController.java @@ -11,9 +11,7 @@ import java.util.concurrent.CompletableFuture; import static com.nynja.walletservice.constant.Constants.DataTypes.STRING; import static com.nynja.walletservice.constant.Constants.ParamTypes.Query; -import static com.nynja.walletservice.constant.Constants.RestApi.API_VERSION; -import static com.nynja.walletservice.constant.Constants.RestApi.REQUIRED_PARAM_MISSING; -import static com.nynja.walletservice.constant.Constants.RestApi.RETRIEVED; +import static com.nynja.walletservice.constant.Constants.RestApi.*; /** * @author Oleg Zhymolokhov (oleg.zhimolokhov@dataart.com) @@ -36,11 +34,12 @@ public class TokenController { @ApiImplicitParam(paramType = Query, name = "address", dataType = STRING, value = "Account address") }) @ApiResponses({ - @ApiResponse(code = 200, message = RETRIEVED), + @ApiResponse(code = 202, message = ACCEPTED), @ApiResponse(code = 400, message = REQUIRED_PARAM_MISSING) }) @GetMapping(API_VERSION + "/fund-address") public CompletableFuture>> fundAddress(@RequestParam String address) { - return tokenService.handleAccountCreation(address).thenApplyAsync(ResponseEntity::ok); + return tokenService.handleAccountCreation(address) + .thenApplyAsync(transactionResponseDto -> ResponseEntity.status(202).body(transactionResponseDto)); } } diff --git a/src/main/java/com/nynja/walletservice/service/TokenService.java b/src/main/java/com/nynja/walletservice/service/TokenService.java index 491595f..2e46a4b 100644 --- a/src/main/java/com/nynja/walletservice/service/TokenService.java +++ b/src/main/java/com/nynja/walletservice/service/TokenService.java @@ -68,20 +68,20 @@ public class TokenService { public CompletableFuture> handleAccountCreation(String accountAddress) { checkIfFunded(accountAddress); - return mint(accountAddress, AMOUNT) + mint(accountAddress, AMOUNT) .thenApplyAsync(transactionResponseDto -> { fundedAddressRepository.save(new FundedAddress(accountAddress, transactionResponseDto.getValue())); return transactionResponseDto; - }).thenApplyAsync(transactionResponseDto -> { + }).thenAcceptAsync(transactionResponseDto -> { web3JService.sendEtherAsync( ethConfig.getAdminCredentials(), accountAddress, new BigDecimal(500), Convert.Unit.FINNEY ); - - return transactionResponseDto; }); + + return CompletableFuture.completedFuture(new TransactionResponseDto<>("", AMOUNT)); } private void checkIfFunded(String address) { -- GitLab