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.CategoryDataType;
11  import com.leonarduk.clearcheckbook.dto.ParsedNameValuePair;
12  
13  public class CategoryCall extends AbstractCall<CategoryDataType> {
14  
15  	private static final Logger _logger = Logger.getLogger(CategoryCall.class);
16  
17  	public static final String TYPE = "category";
18  
19  	public CategoryCall(ClearCheckBookConnection connection) {
20  		super(connection, CategoryDataType.class);
21  	}
22  
23  	@Override
24  	protected String getUrlSuffix() {
25  		return TYPE;
26  	}
27  
28  	@Override
29  	protected String getPluralUrl() {
30  		return "categories";
31  	}
32  
33  	/***
34  	 * 
35  	 Deletes a specific category for the current user <br>
36  	 * Method: delete <br>
37  	 * Call: category
38  	 * <p>
39  	 * Example: <br>
40  	 * https://username:password@www.clearcheckbook.com/api/category/
41  	 * <p>
42  	 * Parameters: Parameter Required Description <br>
43  	 * id Required The id of the category being deleted
44  	 * <p>
45  	 * Returned Values: <br>
46  	 * Value Description <br>
47  	 * true / false Returns true upon removal of the category or false/null on
48  	 * fail
49  	 * 
50  	 * @Override {@link AbstractCall#delete(ParsedNameValuePair)}
51  	 * @return
52  	 * @throws ClearcheckbookException
53  	 */
54  	public boolean delete(ParsedNameValuePair id)
55  			throws ClearcheckbookException {
56  		boolean delete = super.delete(id);
57  		_logger.debug("edit: OK?" + delete + " " + id);
58  		return delete;
59  	}
60  
61  	/***
62  	 * Edit a specific category for the current user. <br>
63  	 * Method: put <br>
64  	 * Call: category
65  	 * <p>
66  	 * Example: <br>
67  	 * https://username:password@www.clearcheckbook.com/api/category/
68  	 * <p>
69  	 * Parameters: <br>
70  	 * Parameter Required Description <br>
71  	 * id Required The id of the category being edited <br>
72  	 * name Required The new name for the category <br>
73  	 * parent Required The new parent id for the category
74  	 * <p>
75  	 * Returned Values: <br>
76  	 * Value Description <br>
77  	 * true / false Returns true on a successful edit or false/null on fail.
78  	 * 
79  	 * @Override {@link AbstractCall#edit(AbstractDataType)}
80  	 * @return
81  	 * @throws ClearcheckbookException
82  	 */
83  	public boolean edit(CategoryDataType input) throws ClearcheckbookException {
84  		boolean edit = super.edit(input);
85  		_logger.debug("edit: OK?" + edit + " " + input);
86  		return edit;
87  	}
88  
89  	/***
90  	 * Gets all of the current users categories <br>
91  	 * Method: get <br>
92  	 * Call: categories
93  	 * <p>
94  	 * <br>
95  	 * Example: <br>
96  	 * https://username:password@www.clearcheckbook.com/api/categories/
97  	 * <p>
98  	 * <br>
99  	 * Parameters: <br>
100 	 * Parameter Required Description <br>
101 	 * None
102 	 * <p>
103 	 * Returned Values: <br>
104 	 * Value Description <br>
105 	 * id The id of the category <br>
106 	 * name The name of the category <br>
107 	 * parent The id of this category's parent. 0 if there is no parent.
108 	 * 
109 	 * @Override {@link AbstractCall#getAll()}
110 	 * @return
111 	 */
112 	public List<CategoryDataType> getAll() throws ClearcheckbookException {
113 		List<CategoryDataType> all = super.getAll();
114 		_logger.debug("getAll: " + all.size() + " returned");
115 
116 		return all;
117 	}
118 
119 	/***
120 	 * Adds a category to the current users accout. <br>
121 	 * Method: post <br>
122 	 * Call: category
123 	 * <p>
124 	 * Example: <br>
125 	 * https://username:password@www.clearcheckbook.com/api/category/
126 	 * <p>
127 	 * Parameters: <br>
128 	 * Parameter Required Description <br>
129 	 * name Required The name of the new category <br>
130 	 * parent Optional The id of this category's parent.
131 	 * <p>
132 	 * <br>
133 	 * Returned Values: <br>
134 	 * Value Description <br>
135 	 * id / false The id of the newly created category or false/null on fail.
136 	 * 
137 	 * @Override {@link AbstractCall#getAll()}
138 	 * @return
139 	 */
140 	public String insert(CategoryDataType input) throws ClearcheckbookException {
141 		String insert = super.insert(input);
142 		_logger.debug("insert: id " + insert + " " + input);
143 		return insert;
144 	}
145 
146 }