diff --git a/app/src/main/java/com/tangem/data/network/Server.java b/app/src/main/java/com/tangem/data/network/Server.java index b3888337bf..b7134804aa 100644 --- a/app/src/main/java/com/tangem/data/network/Server.java +++ b/app/src/main/java/com/tangem/data/network/Server.java @@ -11,6 +11,7 @@ public class Server { public static class Method { public static final String VERIFY = URL_TANGEM + "verify"; + public static final String VERIFY_AND_GET_ARTWORK = URL_TANGEM + "verify-and-get-artwork"; } } diff --git a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java index fc0ef81924..d661a152eb 100644 --- a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java +++ b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java @@ -6,6 +6,7 @@ import android.util.Log; import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import com.tangem.data.network.model.CardVerify; +import com.tangem.data.network.model.CardVerifyAndGetArtwork; import com.tangem.data.network.model.CardVerifyBody; import com.tangem.data.network.model.CardVerifyResponse; import com.tangem.data.network.model.InfuraBody; @@ -235,6 +236,54 @@ public class ServerApiHelper { }); } + + /** + * HTTP + * Card verify + */ + private CardVerifyAndGetArtworkListener cardVerifyAndGetArtworkListener; + + public interface CardVerifyAndGetArtworkListener { + void onCardVerifyAndGetArtwork(CardVerifyAndGetArtwork.Response cardVerifyAndGetArtworkResponse); + } + + public void setCardVerifyAndGetArtworkListener(CardVerifyAndGetArtworkListener listener) { + cardVerifyAndGetArtworkListener = listener; + } + + public void cardVerifyAndGetArtwork(TangemCard card) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl(Server.ApiTangem.URL_TANGEM) + .addConverterFactory(GsonConverterFactory.create()) + .build(); + + TangemApi tangemApi = retrofit.create(TangemApi.class); + + List requests = new ArrayList<>(); + requests.add(new CardVerifyAndGetArtwork.Request.RequestItem(Util.bytesToHex(card.getCID()), Util.bytesToHex(card.getCardPublicKey()),null)); + + CardVerifyAndGetArtwork.Request requestBody = new CardVerifyAndGetArtwork.Request(requests); + + Call call = tangemApi.getCardVerifyAndGetArtwork(requestBody); + call.enqueue(new Callback() { + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (response.code() == 200) { + CardVerifyAndGetArtwork.Response cardVerifyAndGetArtworkResponse = response.body(); + cardVerifyAndGetArtworkListener.onCardVerifyAndGetArtwork(cardVerifyAndGetArtworkResponse); + Log.i(TAG, "cardVerifyAndGetArtwork onResponse " + response.code()); + } else + Log.e(TAG, "cardVerifyAndGetArtwork onResponse " + response.code()); + } + + @Override + public void onFailure(@NonNull Call call, @NonNull Throwable t) { + Log.e(TAG, "cardVerifyAndGetArtwork onFailure " + t.getMessage()); + } + }); + } + + /** * HTTP * Used in Crypto-currency course diff --git a/app/src/main/java/com/tangem/data/network/TangemApi.java b/app/src/main/java/com/tangem/data/network/TangemApi.java index d505bab224..e6ac8af358 100644 --- a/app/src/main/java/com/tangem/data/network/TangemApi.java +++ b/app/src/main/java/com/tangem/data/network/TangemApi.java @@ -1,11 +1,11 @@ package com.tangem.data.network; +import com.tangem.data.network.model.CardVerifyAndGetArtwork; import com.tangem.data.network.model.CardVerifyBody; import com.tangem.data.network.model.CardVerifyResponse; import retrofit2.Call; import retrofit2.http.Body; -import retrofit2.http.Header; import retrofit2.http.Headers; import retrofit2.http.POST; @@ -13,4 +13,9 @@ public interface TangemApi { @Headers("Content-Type: application/json") @POST(Server.ApiTangem.Method.VERIFY) Call getCardVerify(@Body CardVerifyBody body); + + @Headers("Content-Type: application/json") + @POST(Server.ApiTangem.Method.VERIFY_AND_GET_ARTWORK) + Call getCardVerifyAndGetArtwork(@Body CardVerifyAndGetArtwork.Request requestBody); + } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/data/network/model/CardVerifyAndGetArtwork.kt b/app/src/main/java/com/tangem/data/network/model/CardVerifyAndGetArtwork.kt new file mode 100644 index 0000000000..29d46acd37 --- /dev/null +++ b/app/src/main/java/com/tangem/data/network/model/CardVerifyAndGetArtwork.kt @@ -0,0 +1,52 @@ +package com.tangem.data.network.model + +import com.google.gson.annotations.SerializedName + +class CardVerifyAndGetArtwork + { + + data class Request( + @SerializedName("requests") + var requests: List? = null + ) { + + data class RequestItem( + @SerializedName("CID") + var CID: String = "", + + @SerializedName("publicKey") + var publicKey: String = "", + + @SerializedName("artwork") + var artwork: String = "" + ) + + } + + data class Response( + @SerializedName("results") + var results: List? = null + ) { + + data class ResultItem( + @SerializedName("error") + var error: String = "", + + @SerializedName("CID") + var CID: String = "", + + @SerializedName("passed") + var passed: Boolean = false, + + @SerializedName("artwork") + var artwork: String = "", + + @SerializedName("batch") + var batch: String = "", + + @SerializedName("update_date") + var update_date: String = "" + ) + } + +} \ No newline at end of file