diff --git a/src/main/java/com/nynja/walletservice/constant/Constants.java b/src/main/java/com/nynja/walletservice/constant/Constants.java index 6313d29ead4265c023349a651a0cae3dc23eac72..1e720000a029b6b44adeb87eca5f50fd61e5d3bf 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 2b1016f10163cb34635c88c4de4bc9230e34846a..57187054939b70c720e4d6c13d64016545d3be6b 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 491595f4da9ccd0f5ad3f60e9a1e6988cba31b83..2e46a4bf9af618208f790bcdf83fef1abd8eda91 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) {