package com.braintreegateway;
public class CreditCardOptionsRequest extends Request {
private CreditCardRequest parent;
private String verificationMerchantAccountId;
private Boolean failOnDuplicatePaymentMethod;
private Boolean verifyCard;
private String verificationAmount;
private Boolean makeDefault;
private String updateExistingToken;
private String venmoSdkSession;
public CreditCardOptionsRequest(CreditCardRequest parent) {
this.parent = parent;
}
public CreditCardRequest done() {
return parent;
}
public CreditCardOptionsRequest verificationMerchantAccountId(String verificationMerchantAccountId) {
this.verificationMerchantAccountId = verificationMerchantAccountId;
return this;
}
public CreditCardOptionsRequest failOnDuplicatePaymentMethod(Boolean failOnDuplicatePaymentMethod) {
this.failOnDuplicatePaymentMethod = failOnDuplicatePaymentMethod;
return this;
}
public CreditCardOptionsRequest verificationAmount(String verificationAmount) {
this.verificationAmount = verificationAmount;
return this;
}
public CreditCardOptionsRequest verifyCard(Boolean verifyCard) {
this.verifyCard = verifyCard;
return this;
}
public CreditCardOptionsRequest makeDefault(Boolean makeDefault) {
this.makeDefault = makeDefault;
return this;
}
public CreditCardOptionsRequest updateExistingToken(String token) {
this.updateExistingToken = token;
return this;
}
public CreditCardOptionsRequest venmoSdkSession(String venmoSdkSession) {
this.venmoSdkSession = venmoSdkSession;
return this;
}
@Override
public String toXML() {
return buildRequest("options").toXML();
}
@Override
public String toQueryString() {
return toQueryString("options");
}
@Override
public String toQueryString(String root) {
return buildRequest(root).toQueryString();
}
protected RequestBuilder buildRequest(String root) {
RequestBuilder builder = new RequestBuilder(root);
builder.addElement("failOnDuplicatePaymentMethod", failOnDuplicatePaymentMethod);
builder.addElement("verifyCard", verifyCard);
builder.addElement("verificationAmount", verificationAmount);
builder.addElement("verificationMerchantAccountId", verificationMerchantAccountId);
if (makeDefault != null && makeDefault.booleanValue()) {
builder.addElement("makeDefault", makeDefault);
}
builder.addElement("updateExistingToken", updateExistingToken);
builder.addElement("venmoSdkSession", venmoSdkSession);
return builder;
}
}