1
1
package com .amirshiati .androidwoocommercesdk ;
2
2
3
3
import android .net .Uri ;
4
+ import android .util .Log ;
4
5
5
6
import com .amirshiati .androidwoocommercesdk .enums .CategoryManagerType ;
7
+ import com .amirshiati .androidwoocommercesdk .enums .Order ;
8
+ import com .amirshiati .androidwoocommercesdk .enums .OrderBy ;
6
9
import com .amirshiati .androidwoocommercesdk .enums .ProductManagerType ;
7
10
import com .amirshiati .androidwoocommercesdk .helper .CategoryJsonConverter ;
11
+ import com .amirshiati .androidwoocommercesdk .helper .ProductJsonConverter ;
8
12
import com .amirshiati .androidwoocommercesdk .helper .Utils ;
9
13
import com .amirshiati .androidwoocommercesdk .helper .Volley ;
10
14
import com .amirshiati .androidwoocommercesdk .interfaces .OnGetCategoriesFinished ;
15
+ import com .amirshiati .androidwoocommercesdk .interfaces .OnGetCategoryFinished ;
11
16
import com .amirshiati .androidwoocommercesdk .interfaces .OnGetJsonArrayFinished ;
17
+ import com .amirshiati .androidwoocommercesdk .interfaces .OnGetJsonObjectFinished ;
12
18
import com .amirshiati .androidwoocommercesdk .model .Category ;
13
19
import com .android .volley .Request ;
14
20
import com .android .volley .VolleyError ;
15
21
16
22
import org .json .JSONArray ;
23
+ import org .json .JSONObject ;
17
24
18
25
import java .io .UnsupportedEncodingException ;
19
26
import java .util .ArrayList ;
@@ -25,9 +32,18 @@ public class CategoryManager {
25
32
private Volley volley ;
26
33
27
34
private OnGetCategoriesFinished onGetCategoriesFinished ;
28
-
35
+ private OnGetCategoryFinished onGetCategoryFinished ;
29
36
private int page = 1 ;
30
37
private int perPage = 10 ;
38
+ private String search ;
39
+ private Order order ;
40
+ private OrderBy orderBy ;
41
+ private Boolean hideEmpty ;
42
+ private Long parent ;
43
+ private Long product ;
44
+ private String slug ;
45
+ private int [] include ;
46
+ private int [] exclude ;
31
47
32
48
public CategoryManager (Uri .Builder builder , CategoryManagerType type , Volley volley ) {
33
49
this .builder = builder ;
@@ -40,6 +56,11 @@ public CategoryManager addGetCategoriesCallBack(OnGetCategoriesFinished onGetCat
40
56
return this ;
41
57
}
42
58
59
+ public CategoryManager addGetCategoryCallBack (OnGetCategoryFinished onGetCategoryFinished ) {
60
+ this .onGetCategoryFinished = onGetCategoryFinished ;
61
+ return this ;
62
+ }
63
+
43
64
public CategoryManager setPage (int page ) {
44
65
this .page = page ;
45
66
return this ;
@@ -50,27 +71,103 @@ public CategoryManager setPerPage(int perPage) {
50
71
return this ;
51
72
}
52
73
74
+ public CategoryManager search (String search ) {
75
+ this .search = search ;
76
+ return this ;
77
+ }
78
+
79
+ public CategoryManager setOrder (Order order ) {
80
+ this .order = order ;
81
+ return this ;
82
+ }
83
+
84
+ public CategoryManager setOrderBy (OrderBy orderBy ) {
85
+ this .orderBy = orderBy ;
86
+ return this ;
87
+ }
88
+
89
+ public CategoryManager hideEmpty (boolean hideEmpty ) {
90
+ this .hideEmpty = hideEmpty ;
91
+ return this ;
92
+ }
93
+
94
+ public CategoryManager setParent (long parent ) {
95
+ this .parent = parent ;
96
+ return this ;
97
+ }
98
+
99
+ public CategoryManager setProduct (long product ) {
100
+ this .product = product ;
101
+ return this ;
102
+ }
103
+
104
+ public CategoryManager slug (String slug ) {
105
+ this .slug = slug ;
106
+ return this ;
107
+ }
108
+
109
+ public CategoryManager setInclude (int [] include ) {
110
+ this .include = include ;
111
+ return this ;
112
+ }
113
+
114
+ public CategoryManager setExclude (int [] exclude ) {
115
+ this .exclude = exclude ;
116
+ return this ;
117
+ }
53
118
54
119
public void start () {
55
120
switch (type ) {
56
121
case GETCATEGORIES :
57
122
getCategories (this , setBuilder (this ));
58
123
break ;
59
124
125
+ case GETCATEGORY :
126
+ setBuilder (this );
127
+ getCategory (this );
128
+
60
129
default :
61
130
return ;
62
131
}
63
132
}
64
133
65
134
private String setBuilder (final CategoryManager categoryManager ) {
66
- // if (categoryManager.type == ProductManagerType.GETPRODUCT )
67
- // return categoryManager.builder.build().toString();
135
+ if (categoryManager .type == CategoryManagerType . GETCATEGORY )
136
+ return categoryManager .builder .build ().toString ();
68
137
69
138
String array = "" ;
70
139
71
140
categoryManager .builder .appendQueryParameter ("page" , String .valueOf (categoryManager .page ));
72
141
categoryManager .builder .appendQueryParameter ("per_page" , String .valueOf (categoryManager .perPage ));
73
142
143
+ if (!Utils .stringEmpty (categoryManager .search ))
144
+ categoryManager .builder .appendQueryParameter ("search" , categoryManager .search );
145
+
146
+ if (categoryManager .order != null )
147
+ categoryManager .builder .appendQueryParameter ("order" , Utils .setBuilderOrder (categoryManager .order ));
148
+
149
+ if (categoryManager .orderBy != null )
150
+ categoryManager .builder .appendQueryParameter ("orderby" , Utils .setBuilderOrderBy (categoryManager .orderBy ));
151
+
152
+ if (categoryManager .hideEmpty != null )
153
+ categoryManager .builder .appendQueryParameter ("hide_empty" , String .valueOf (categoryManager .hideEmpty ));
154
+
155
+ if (categoryManager .parent != null )
156
+ categoryManager .builder .appendQueryParameter ("parent" , String .valueOf (categoryManager .parent ));
157
+
158
+ if (categoryManager .product != null )
159
+ categoryManager .builder .appendQueryParameter ("product" , String .valueOf (categoryManager .product ));
160
+
161
+ if (!Utils .stringEmpty (categoryManager .slug ))
162
+ categoryManager .builder .appendQueryParameter ("slug" , categoryManager .slug );
163
+
164
+ if (categoryManager .include != null )
165
+ array += Utils .includeId (categoryManager .include , "include" );
166
+
167
+ if (categoryManager .exclude != null )
168
+ array += Utils .includeId (categoryManager .exclude , "exclude" );
169
+
170
+
74
171
return categoryManager .builder .build ().toString () + array ;
75
172
76
173
}
@@ -117,4 +214,41 @@ public void onFail(VolleyError error) {
117
214
}
118
215
});
119
216
}
217
+
218
+ private void getCategory (final CategoryManager categoryManager ) {
219
+ volley .basicAuthJsonObjReq (
220
+ Request .Method .GET ,
221
+ builder .build ().toString (),
222
+ null ,
223
+ new OnGetJsonObjectFinished () {
224
+ @ Override
225
+ public void onSuccess (JSONObject response ) {
226
+ try {
227
+ if (categoryManager .onGetCategoryFinished != null )
228
+ categoryManager .onGetCategoryFinished .onSuccess (CategoryJsonConverter .jsonToCategory (response ));
229
+
230
+ } catch (Exception e ) {
231
+ if (categoryManager .onGetCategoryFinished != null )
232
+ categoryManager .onGetCategoryFinished .onFail (" Error: " + e .getMessage ());
233
+ }
234
+ }
235
+
236
+ @ Override
237
+ public void onFail (VolleyError error ) {
238
+ error .printStackTrace ();
239
+ String body = "" ;
240
+ //String statusCode = String.valueOf(error.networkResponse.statusCode);
241
+ if (error .networkResponse .data != null ) {
242
+ try {
243
+ body = new String (error .networkResponse .data , "UTF-8" );
244
+ } catch (UnsupportedEncodingException e ) {
245
+ e .printStackTrace ();
246
+ }
247
+ }
248
+
249
+ if (categoryManager .onGetCategoryFinished != null )
250
+ categoryManager .onGetCategoryFinished .onFail (body );
251
+ }
252
+ });
253
+ }
120
254
}
0 commit comments