View Javadoc

1   package com.leonarduk.clearcheckbook.calls;
2   
3   import java.util.List;
4   
5   import org.apache.log4j.Logger;
6   
7   import com.leonarduk.clearcheckbook.ClearCheckBookConnection;
8   import com.leonarduk.clearcheckbook.ClearcheckbookException;
9   import com.leonarduk.clearcheckbook.dto.AbstractDataType;
10  import com.leonarduk.clearcheckbook.dto.AccountDataType;
11  import com.leonarduk.clearcheckbook.dto.ParsedNameValuePair;
12  import com.leonarduk.clearcheckbook.dto.TransactionDataType;
13  
14  public class AccountCall extends AbstractCall<AccountDataType> {
15  
16  	private static final Logger _logger = Logger.getLogger(AccountCall.class);
17  
18  	public static final String TYPE = "account";
19  
20  	@Override
21  	protected String getUrlSuffix() {
22  		return TYPE;
23  	}
24  
25  	public AccountCall(ClearCheckBookConnection connection) {
26  		super(connection, AccountDataType.class);
27  	}
28  
29  	@Override
30  	public List<String> bulkProcess(List<AccountDataType> dataTypeList)
31  			throws ClearcheckbookException {
32  	return	super.bulkProcess(dataTypeList);
33  	}
34  
35  	/***
36  	 * Returns an array of all accounts and account balances for this user. <br>
37  	 * Method: get <br>
38  	 * Call: accounts
39  	 * <p>
40  	 * Example: <br>
41  	 * https://username:password@www.clearcheckbook.com/api/accounts/
42  	 * <p>
43  	 * Parameters: <br>
44  	 * Parameter Required Description <br>
45  	 * is_overview Optional Should be set to "true" if you want to return all
46  	 * accounts that just have a balance (Including transactions not assigned to
47  	 * an account)
48  	 * <p>
49  	 * Returned Values: <br>
50  	 * Value Description <br>
51  	 * id The account id <br>
52  	 * name the name of the account <br>
53  	 * type_id the type of account (1= Cash, 2= Checking Account, 3= Savings
54  	 * Account, 4= Credit Card, 5= Investment) <br>
55  	 * deposit the float value containing the amount of deposits in this
56  	 * account. <br>
57  	 * jive_deposit the float value containing the amount of jived deposits in
58  	 * this account. <br>
59  	 * withdrawal the float value containing the amount of withdrawals in this
60  	 * account. <br>
61  	 * jive_withdrawal the float value containing the amount of jived
62  	 * withdrawals in this account.
63  	 * 
64  	 * @Override {@link AbstractCall#getAll()}
65  	 * @return returns a list of accounts.
66  	 */
67  	public List<AccountDataType> getAll() throws ClearcheckbookException {
68  		return super.getAll();
69  	}
70  
71  	/***
72  	 * 
73  	 Returns an array of information for a single account <br>
74  	 * Method: get <br>
75  	 * Call: account
76  	 * <p>
77  	 * Example: <br>
78  	 * https://username:password@www.clearcheckbook.com/api/account/
79  	 * <p>
80  	 * Parameters: vParameter Required Description <br>
81  	 * id Required the id of the account you're getting information for
82  	 * <p>
83  	 * Returned Values: <br>
84  	 * Value Description <br>
85  	 * id The account id <br>
86  	 * name the name of the account <br>
87  	 * type_id the type of account (1= Cash, 2= Checking Account, 3= Savings
88  	 * Account, 4= Credit Card, 5= Investment) <br>
89  	 * deposit the float value containing the amount of deposits in this
90  	 * account. <br>
91  	 * jive_deposit the float value containing the amount of jived deposits in
92  	 * this account. <br>
93  	 * withdrawal the float value containing the amount of withdrawals in this
94  	 * account. <br>
95  	 * jive_withdrawal the float value containing the amount of jived
96  	 * withdrawals in this account.
97  	 * 
98  	 * @Override {@link AbstractCall#get(ParsedNameValuePair)}
99  	 * @param ParsedNameValuePair
100 	 *            id
101 	 * @return AccountDataType
102 	 */
103 	@Override
104 	public AccountDataType get(ParsedNameValuePair id)
105 			throws ClearcheckbookException {
106 		AccountDataType accountDataType = super.get(id);
107 		_logger.debug("get: " + id + " -> " + accountDataType);
108 		return accountDataType;
109 	}
110 
111 /***
112 	 * 
113 	 Adds an account to the site <br>
114 	 * Method: post <br>
115 	 * Call: account
116 	 * <p>
117 	 * Example: <br>
118 	 * https://username:password@www.clearcheckbook.com/api/account/
119 	 * <p>
120 	 * Parameters: <br>
121 	 * Parameter Required Description <br>
122 	 * name Required The name of the account <br>
123 	 * type_id Required the type of account (1= Cash, 2= Checking Account, 3=
124 	 * Savings Account, 4= Credit Card, 5= Investment) <br>
125 	 * initial_balance Optional A float value identifying the existing balance
126 	 * in this account (if negative, put a '-' symbol before the number...
127 	 * -100.00)
128 	 * <p>
129 	 * Returned Values: <br>
130 	 * Value Description <br>
131 	 * Multiple Responses* The newly created id for the account on success or
132 	 * false/null on fail.
133 	 * 
134 	 * @Override {@link AbstractCall#insert(AbstractDataType)
135 	 * @param AccountDataType input
136 	 * @return id
137 	 */
138 	public String insert(AccountDataType input) throws ClearcheckbookException {
139 		return super.insert(input);
140 	}
141 
142 	/***
143 	 * Edit the details of an account <br>
144 	 * Method: put <br>
145 	 * Call: account
146 	 * <p>
147 	 * Example: <br>
148 	 * https://username:password@www.clearcheckbook.com/api/account/
149 	 * <p>
150 	 * Parameters: <br>
151 	 * Parameter Required Description <br>
152 	 * id Required the id of the account being edited <br>
153 	 * name Required the new name of the account <br>
154 	 * type_id Required the new type_id of the account (1= Cash, 2= Checking
155 	 * Account, 3= Savings Account, 4= Credit Card, 5= Investment)
156 	 * <p>
157 	 * Returned Values: <br>
158 	 * Value Description <br>
159 	 * true/false returns true on a successful edit or false on fail.
160 	 * 
161 	 * @Override {@link AbstractCall#edit(AbstractDataType)}
162 	 * @param AccountDataType
163 	 *            input
164 	 * @return boolean - ok
165 	 * @throws ClearcheckbookException
166 	 */
167 
168 	public boolean edit(AccountDataType input) throws ClearcheckbookException {
169 		return super.edit(input);
170 	}
171 
172 	/***
173 	 * Deletes a specific account <br>
174 	 * Method: delete <br>
175 	 * Call: account
176 	 * <p>
177 	 * Example: <br>
178 	 * https://username:password@www.clearcheckbook.com/api/account/
179 	 * <p>
180 	 * Parameters: <br>
181 	 * Parameter Required Description <br>
182 	 * id Required the id of the account being deleted
183 	 * <p>
184 	 * Returned Values: <br>
185 	 * Value Description <br>
186 	 * true / false returns true upon successfull delete or false/null on fail
187 	 * 
188 	 * @Override {@link AbstractCall#delete(ParsedNameValuePair)}
189 	 * @param ParsedNameValuePair
190 	 *            idParameter
191 	 * @return boolean - ok
192 	 * @throws ClearcheckbookException
193 	 */
194 	public boolean delete(ParsedNameValuePair idParameter)
195 			throws ClearcheckbookException {
196 		return super.delete(idParameter);
197 	}
198 }