diff --git a/src/main/java/net/cryptonotifier/notifier/api/client/CryptoNotifierRestApiClient.java b/src/main/java/net/cryptonotifier/notifier/api/client/CryptoNotifierRestApiClient.java index 481ab9e..05b8742 100644 --- a/src/main/java/net/cryptonotifier/notifier/api/client/CryptoNotifierRestApiClient.java +++ b/src/main/java/net/cryptonotifier/notifier/api/client/CryptoNotifierRestApiClient.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import java.util.List; import net.cryptonotifier.notifier.api.client.domain.BasicResponse; +import net.cryptonotifier.notifier.api.client.domain.ConfirmationResponse; import net.cryptonotifier.notifier.api.client.domain.NewSubscription; import net.cryptonotifier.notifier.api.client.domain.SubscriptionResponse; @@ -42,4 +43,8 @@ SubscriptionResponse createSubscription(NewSubscription newSubscription) BasicResponse deleteSubscription(String subscriptionId); + + ConfirmationResponse getConfirmations(String txnId); + + } diff --git a/src/main/java/net/cryptonotifier/notifier/api/client/domain/ConfirmationResponse.java b/src/main/java/net/cryptonotifier/notifier/api/client/domain/ConfirmationResponse.java new file mode 100644 index 0000000..da8af63 --- /dev/null +++ b/src/main/java/net/cryptonotifier/notifier/api/client/domain/ConfirmationResponse.java @@ -0,0 +1,17 @@ +package net.cryptonotifier.notifier.api.client.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.checkerframework.checker.units.qual.A; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ConfirmationResponse { + String network; + String txnHash; + long blockNumber; + long currentHeight; + long confirmations; +} diff --git a/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierRestApiClientImpl.java b/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierRestApiClientImpl.java index 99316b0..70e684d 100644 --- a/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierRestApiClientImpl.java +++ b/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierRestApiClientImpl.java @@ -10,6 +10,7 @@ import net.cryptonotifier.notifier.api.client.CryptoNotifierError; import net.cryptonotifier.notifier.api.client.CryptoNotifierRestApiClient; import net.cryptonotifier.notifier.api.client.domain.BasicResponse; +import net.cryptonotifier.notifier.api.client.domain.ConfirmationResponse; import net.cryptonotifier.notifier.api.client.domain.NewSubscription; import net.cryptonotifier.notifier.api.client.domain.SubscriptionResponse; import retrofit2.Call; @@ -18,41 +19,47 @@ public class CryptoNotifierRestApiClientImpl implements CryptoNotifierRestApiClient { - private final CryptoNotifierService cryptoNotifierService; - - public CryptoNotifierRestApiClientImpl(String apiKey) { - cryptoNotifierService = createService(CryptoNotifierService.class, apiKey); - } - - - @Override - public SubscriptionResponse createSubscription(NewSubscription newSubscription) throws - CryptoNotifierError, JsonProcessingException { - final Call call; - ObjectMapper objectMapper = new ObjectMapper(); - call = cryptoNotifierService.createSubscription(objectMapper.convertValue(newSubscription, - JsonNode.class)); - return executeSync(call); - } - - @Override - public SubscriptionResponse getSubscription(String subscriptionId) { - final Call call; - call = cryptoNotifierService.getSubscription(subscriptionId); - return executeSync(call); - } - - @Override - public List getSubscriptions(int start, int size) { - final Call> call; - call = cryptoNotifierService.getSubscriptionList(start, size); - return executeSync(call); - } - - @Override - public BasicResponse deleteSubscription(String subscriptionId) { - final Call call; - call = cryptoNotifierService.deleteSubscription(subscriptionId); - return executeSync(call); - } + private final CryptoNotifierService cryptoNotifierService; + + public CryptoNotifierRestApiClientImpl(String apiKey) { + cryptoNotifierService = createService(CryptoNotifierService.class, apiKey); + } + + + @Override + public SubscriptionResponse createSubscription(NewSubscription newSubscription) throws + CryptoNotifierError, JsonProcessingException { + final Call call; + ObjectMapper objectMapper = new ObjectMapper(); + call = cryptoNotifierService.createSubscription(objectMapper.convertValue(newSubscription, + JsonNode.class)); + return executeSync(call); + } + + @Override + public SubscriptionResponse getSubscription(String subscriptionId) { + final Call call; + call = cryptoNotifierService.getSubscription(subscriptionId); + return executeSync(call); + } + + @Override + public List getSubscriptions(int start, int size) { + final Call> call; + call = cryptoNotifierService.getSubscriptionList(start, size); + return executeSync(call); + } + + @Override + public BasicResponse deleteSubscription(String subscriptionId) { + final Call call; + call = cryptoNotifierService.deleteSubscription(subscriptionId); + return executeSync(call); + } + + @Override + public ConfirmationResponse getConfirmations(String txnId) { + final Call call = cryptoNotifierService.getConfirmation(txnId); + return executeSync(call); + } } diff --git a/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierService.java b/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierService.java index 0106b27..6942f3b 100644 --- a/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierService.java +++ b/src/main/java/net/cryptonotifier/notifier/api/client/impl/CryptoNotifierService.java @@ -4,6 +4,7 @@ import java.util.List; import net.cryptonotifier.notifier.api.client.CryptoNotifierError; import net.cryptonotifier.notifier.api.client.domain.BasicResponse; +import net.cryptonotifier.notifier.api.client.domain.ConfirmationResponse; import net.cryptonotifier.notifier.api.client.domain.NewSubscription; import net.cryptonotifier.notifier.api.client.domain.SubscriptionResponse; import retrofit2.Call; @@ -32,4 +33,6 @@ Call createSubscription(@Body JsonNode newSubscription) @DELETE("/api/v1/subscriptions/{subscriptionId}") Call deleteSubscription(@Path("subscriptionId") String subscriptionId); + @GET("/api/v1/confirmations/{txnId}") + Call getConfirmation(String txnId); }