Skip to content

Commit 0114184

Browse files
committed
Added limit, skip etc, Fixed current user
1 parent 508f102 commit 0114184

File tree

3 files changed

+61
-21
lines changed

3 files changed

+61
-21
lines changed

example/lib/main.dart

+10-12
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ class _MyAppState extends State<MyApp> {
5050
//getAllItems();
5151
//getAllItemsByName();
5252
//getSingleItem();
53-
query();
54-
//initUser();
53+
//query();
54+
initUser();
5555
}
5656

5757
void getAllItemsByName() async {
@@ -80,9 +80,7 @@ class _MyAppState extends State<MyApp> {
8080
var response = await DietPlan().get('R5EonpUDWy');
8181

8282
if (response.success) {
83-
print(ApplicationConstants.APP_NAME +
84-
": " +
85-
(response.result as DietPlan).toString());
83+
print(ApplicationConstants.APP_NAME + ": " + (response.result as DietPlan).toString());
8684
} else {
8785
print(ApplicationConstants.APP_NAME + ": " + response.exception.message);
8886
}
@@ -91,10 +89,9 @@ class _MyAppState extends State<MyApp> {
9189
void query() async {
9290
// Query for an object by name
9391
var queryBuilder = QueryBuilder<DietPlan>(DietPlan())
94-
..startsWith(DietPlan.NAME, "Keto")
95-
..greaterThan(DietPlan.FAT, 64)
96-
..lessThan(DietPlan.FAT, 66)
97-
..equals(DietPlan.CARBS, 5);
92+
..greaterThan(DietPlan.FAT, 20)
93+
..limit(1)
94+
..skip(1);
9895

9996
var response = await queryBuilder.query();
10097

@@ -106,11 +103,12 @@ class _MyAppState extends State<MyApp> {
106103
}
107104

108105
initUser() async {
109-
ParseUser()
110-
.create("TestFlutter", "TestPassword123", "[email protected]");
111-
var user = await ParseUser().signUp();
106+
var user = ParseUser().create("TestFlutter", "TestPassword123", "[email protected]");
107+
user = await ParseUser().signUp();
112108
user = await ParseUser().login();
109+
113110
user = await ParseUser().currentUser(fromServer: true);
111+
114112
user = await ParseUser().requestPasswordReset();
115113
user = await ParseUser().verificationEmailRequest();
116114
user = await ParseUser().all();

lib/network/parse_query.dart

+49-7
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,39 @@ class QueryBuilder<T extends ParseObject> {
2424
List<MapEntry> _allQueries = List();
2525
List<MapEntry> _regExQueries = List();
2626
List<MapEntry> _textQueries = List();
27-
int limit = 0;
28-
int skip = 0;
27+
int _limit = 0;
28+
int _skip = 0;
29+
dynamic _where;
30+
dynamic _order;
31+
dynamic _keys;
32+
dynamic _include;
2933

3034
QueryBuilder(this.object) : super();
3135

36+
void limit(int limit){
37+
_limit = limit;
38+
}
39+
40+
void skip(int skip){
41+
_skip = skip;
42+
}
43+
44+
void where(int where){
45+
_where = where;
46+
}
47+
48+
void order(int order){
49+
_order = order;
50+
}
51+
52+
void keys(int keys){
53+
_keys = keys;
54+
}
55+
56+
void include(int include){
57+
_include = include;
58+
}
59+
3260
void startsWith(String key, dynamic value) {
3361
_regExQueries.add(MapEntry(key, "^$value"));
3462
}
@@ -143,16 +171,22 @@ class QueryBuilder<T extends ParseObject> {
143171
}
144172
}
145173

146-
// -- ADD LIMITER
147-
if (limit != 0) query += '?limit=$limit';
148-
if (skip != 0) query += '?skip=$skip';
149-
150174
query += QUERY_END;
151175

176+
// ADD PARAMS
177+
Map limiters = Map();
178+
if (_where != null) limiters['where'] = where;
179+
if (_order != null) limiters["order"] = order;
180+
if (_limit != 0) limiters["limit"] = limit;
181+
if (_skip != 0) limiters["skip"] = skip;
182+
if (_keys != null) limiters["keys"] = keys;
183+
if (_include != null) limiters["include"] = include;
184+
query += getLimiters(limiters);
185+
152186
// -- TEST
153187
print("QUERY: $query");
154188

155-
return query;
189+
return "$query";
156190
}
157191

158192
_getAllQueries(List<MapEntry> queries, String queryOperator){
@@ -229,6 +263,14 @@ class QueryBuilder<T extends ParseObject> {
229263
return sanitisedQueries;
230264
}
231265

266+
getLimiters(Map map) {
267+
String result;
268+
map.forEach((key, value) {
269+
result = (result != null) ? result + "&$key=$value" : "&$key=$value";
270+
});
271+
return result;
272+
}
273+
232274
convertValueToCorrectType(dynamic value) {
233275
if (value is int) return (value as num);
234276
if (value is String) return "\"$value\"";

lib/objects/parse_user.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class ParseUser {
1616
client != null ? _client = client : _client = ParseHTTPClient();
1717

1818
if (_debug == null) {
19-
_debug = client.data.debug;
19+
_client.data.debug != null ? _debug = _client.data.debug : false;
2020
} else {
2121
_debug = _debug;
2222
}
@@ -39,7 +39,7 @@ class ParseUser {
3939
Uri uri= Uri(
4040
scheme: tempUri.scheme,
4141
host: tempUri.host,
42-
path: "${tempUri.path}$path/me");
42+
path: "${tempUri.path}/users/me");
4343

4444
final response = await _client.get(uri, headers: {
4545
ParseConstants.HEADER_SESSION_TOKEN: _client.data.sessionId

0 commit comments

Comments
 (0)