
com.xendit.model.Balance Maven / Gradle / Ivy
package com.xendit.model;
import com.google.gson.annotations.SerializedName;
import com.xendit.Xendit;
import com.xendit.exception.XenditException;
import java.util.HashMap;
import java.util.Map;
import lombok.*;
@Getter
@Setter
@Builder
public class Balance {
@SerializedName("balance")
private Number balance;
private static BalanceClient balanceClient;
/** */
public enum AccountType {
CASH,
HOLDING,
TAX
}
public void setBalance(Number balance) {
this.balance = balance;
}
public static Balance get() throws XenditException {
return getBalance(new HashMap<>(), null);
}
public static Balance get(Balance.AccountType accountType) throws XenditException {
return getBalance(new HashMap<>(), accountType);
}
public static Balance get(Map headers, Balance.AccountType accountType)
throws XenditException {
return getBalance(headers, accountType);
}
private static Balance getBalance(Map headers, Balance.AccountType accountType)
throws XenditException {
BalanceClient client = getClient();
return client.getBalance(headers, accountType);
}
/**
* Its create a client for Invoice
*
* @return InvoiceClient
*/
private static BalanceClient getClient() {
if (isApiKeyExist()) {
if (balanceClient == null
|| !balanceClient.getOpt().getApiKey().trim().equals(Xendit.apiKey.trim())) {
return balanceClient =
new BalanceClient(Xendit.Opt.setApiKey(Xendit.apiKey), Xendit.getRequestClient());
}
} else {
if (balanceClient == null
|| !balanceClient.getOpt().getApiKey().trim().equals(Xendit.Opt.getApiKey().trim())) {
return balanceClient = new BalanceClient(Xendit.Opt, Xendit.getRequestClient());
}
}
return balanceClient;
}
/**
* check if api-key is exist or not
*
* @return boolean
*/
private static boolean isApiKeyExist() {
return Xendit.apiKey != null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy