All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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