Package com.balancedpayments

Source Code of com.balancedpayments.Account$Collection

package com.balancedpayments;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.balancedpayments.core.Client;
import com.balancedpayments.core.Resource;
import com.balancedpayments.core.ResourceCollection;
import com.balancedpayments.errors.HTTPError;

public class Account extends Resource {

    public static final String BUYER_ROLE = "buyer";
    public static final String MERCHANT_ROLE = "merchant";

    public Date created_at;
    public String name;
    public String email_address;
    public String roles[];
    public String bank_accounts_uri;
    public BankAccount.Collection bank_accounts;
    public String cards_uri;
    public Card.Collection cards;
    public String credits_uri;
    public Credit.Collection credits;
    public String debits_uri;
    public Debit.Collection debits;
    public String holds_uri;
    public Hold.Collection holds;
    public Map<String, String> meta;

    public static class Collection extends ResourceCollection<Account> {
        public Collection(String uri) {
            super(Account.class, uri);
        }
    };

    public static Account get(String uri) throws HTTPError {
        return new Account((new Client()).get(uri));
    }

    public Account() {
        super();
    }

    public Account(Map<String, Object> payload) {
        super(payload);
    }

    public Account(String uri) throws HTTPError {
        super(uri);
    }

    public Credit credit(
            int amount,
            String description,
            String destination_uri,
            String appears_on_statement_as,
            Map<String, String> meta) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("amount", amount);
        if (description != null)
            payload.put("description", description);
        if (destination_uri != null)
            payload.put("destination", destination_uri);
        if (appears_on_statement_as != null)
            payload.put("appears_on_statement_as", appears_on_statement_as);
        if (meta != null)
            payload.put("meta", meta);
        return credits.create(payload);
    }

    public Credit credit(int amount) throws HTTPError {
        return credit(amount, null, null, null, null);
    }

    public Debit debit(
            int amount,
            String description,
            String source_uri,
            String appears_on_statement_as,
            Map<String, String> meta) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("amount", amount);
        if (description != null)
            payload.put("description", description);
        if (source_uri != null)
            payload.put("source", source_uri);
        if (appears_on_statement_as != null)
            payload.put("appears_on_statement_as", appears_on_statement_as);
        if (meta != null)
            payload.put("meta", meta);
        return debits.create(payload);
    }

    public Debit debit(int amount) throws HTTPError {
        return debit(amount, null, null, null, null);
    }

    public Hold hold(
            int amount,
            String description,
            String source_uri,
            Map<String, String> meta) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("amount", amount);
        if (description != null)
            payload.put("description", description);
        if (source_uri != null)
            payload.put("source", source_uri);
        if (meta != null)
            payload.put("meta", meta);
        return holds.create(payload);
    }

    public Hold hold(int amount) throws HTTPError {
        return hold(amount, null, null, null);
    }

    public void associateBankAccount(String bank_account_uri) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("bank_account_uri", bank_account_uri);
        Map<String, Object> response = client.put(uri, payload);
        deserialize(response);
    }

    public void promoteToMerchant(Map<String, Object> merchant_map) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("merchant", merchant_map);
        Map<String, Object> response = client.put(uri, payload);
        deserialize(response);
    }

    /*
    This method should be called after and only after a merchant is redirected to
    Balanced and Balanced consequently redirects the merchant back to you with a
    merchant_uri parameter on a query string. It is generated when
    the marketplace redirects its user to Balanced as a result of a
    MoreInformationRequired exception that's thrown (http status code 300).

    You should use the promoteToMerchant(Map<String, Object> merchant_map) method
    when attempting to communicate as a first attempt with Balanced.
     */
    public void promoteToMerchant(String merchant_uri) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("merchant_uri", merchant_uri);
        Map<String, Object> response = client.put(uri, payload);
        deserialize(response);
    }

    public void associateCard(String card_uri) throws HTTPError {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("card_uri", card_uri);
        Map<String, Object> response = client.put(uri, payload);
        deserialize(response);
    }

    @Override
    public Map<String, Object> serialize() {
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("name", name);
        payload.put("email_address", email_address);
        payload.put("meta", meta);
        return payload;
    }

    @Override
    public void deserialize(Map<String, Object> payload) {
        super.deserialize(payload);
        created_at = deserializeDate((String) payload.get("created_at"));
        meta = (Map<String, String>) payload.get("meta");
        name = (String) payload.get("name");
        email_address = (String) payload.get("email_address");
        roles = (String[])(((ArrayList<String>) payload.get("roles")).toArray(new String[0]));
        bank_accounts_uri = (String) payload.get("bank_accounts_uri");
        bank_accounts = new BankAccount.Collection(bank_accounts_uri);
        cards_uri = (String) payload.get("cards_uri");
        cards = new Card.Collection(cards_uri);
        credits_uri = (String) payload.get("credits_uri");
        credits = new Credit.Collection(credits_uri);
        debits_uri = (String) payload.get("debits_uri");
        debits = new Debit.Collection(debits_uri);
        holds_uri = (String) payload.get("holds_uri");
        holds = new Hold.Collection(holds_uri);
    }
}
TOP

Related Classes of com.balancedpayments.Account$Collection

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.