package com.fullcontact.api.libs.fullcontact4j.http.cardreader;
import com.fullcontact.api.libs.fullcontact4j.FCConstants;
import com.fullcontact.api.libs.fullcontact4j.FullContactApi;
import com.fullcontact.api.libs.fullcontact4j.http.FCRequest;
import retrofit.Callback;
import java.util.Map;
public class CardReaderViewRequest extends FCRequest<CardReaderFullResponse> {
private String id;
private String accessToken;
public CardReaderViewRequest(String accessToken, String id, Map<String, String> params) {
super(params);
this.id = id;
this.accessToken = accessToken;
}
public String getId() {
return id;
}
public String getAccessToken() {
return accessToken;
}
@Override
protected void makeRequest(FullContactApi api, Callback<CardReaderFullResponse> callback) {
api.viewCard(accessToken, params, id, callback);
}
public static class Builder extends BaseBuilder<Builder, CardReaderViewRequest> {
private String id;
private String accessToken;
public Builder cardId(String id) {
this.id = id;
return this;
}
public Builder verifiedOnly(Boolean verifiedOnly) {
if(verifiedOnly) {
params.put(FCConstants.PARAM_CARD_RETURNED_DATA, "verifiedOnly");
} else {
params.remove(FCConstants.PARAM_CARD_RETURNED_DATA);
}
return this;
}
public Builder diagnostics(boolean use) {
params.put(FCConstants.PARAM_CARD_DIAGNOSTICS, Boolean.toString(use));
return this;
}
public Builder accessToken(String token) {
this.accessToken = token;
return this;
}
public void validate() {
if(id == null) {
throw new IllegalArgumentException("Card View Request must have a card ID");
}
}
@Override
protected CardReaderViewRequest createInstance() {
return new CardReaderViewRequest(accessToken, id, params);
}
protected Builder self() {
return this;
}
}
}