Updated on 2026-08-14

This commit is contained in:
Tangem 2018-09-14 12:06:08 +03:00
parent 46491cf1f0
commit 1c7abe647d
4 changed files with 108 additions and 1 deletions

View file

@ -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";
}
}

View file

@ -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<CardVerifyAndGetArtwork.Request.RequestItem> 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<CardVerifyAndGetArtwork.Response> call = tangemApi.getCardVerifyAndGetArtwork(requestBody);
call.enqueue(new Callback<CardVerifyAndGetArtwork.Response>() {
@Override
public void onResponse(@NonNull Call<CardVerifyAndGetArtwork.Response> call, @NonNull Response<CardVerifyAndGetArtwork.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<CardVerifyAndGetArtwork.Response> call, @NonNull Throwable t) {
Log.e(TAG, "cardVerifyAndGetArtwork onFailure " + t.getMessage());
}
});
}
/**
* HTTP
* Used in Crypto-currency course

View file

@ -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<CardVerifyResponse> getCardVerify(@Body CardVerifyBody body);
@Headers("Content-Type: application/json")
@POST(Server.ApiTangem.Method.VERIFY_AND_GET_ARTWORK)
Call<CardVerifyAndGetArtwork.Response> getCardVerifyAndGetArtwork(@Body CardVerifyAndGetArtwork.Request requestBody);
}

View file

@ -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<RequestItem>? = 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<ResultItem>? = 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 = ""
)
}
}