@@ -37,7 +37,7 @@ class QueryBuilder<T extends ParseObject> {
37
37
38
38
T object;
39
39
List <MapEntry <String , dynamic >> queries = < MapEntry <String , dynamic >> [];
40
- final Map <String , dynamic > limiters = Map <String , dynamic >() ;
40
+ final Map <String , dynamic > limiters = < String , dynamic > {} ;
41
41
42
42
/// Adds a limit to amount of results return from Parse
43
43
void setLimit (int limit) {
@@ -103,10 +103,10 @@ class QueryBuilder<T extends ParseObject> {
103
103
{bool caseSensitive = false }) {
104
104
if (caseSensitive) {
105
105
queries.add (MapEntry <String , dynamic >(
106
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ regex\ " : \ " ^$query \ " }' ));
106
+ _SINGLE_QUERY , '"$column ":{"\$ regex": "^$query "}' ));
107
107
} else {
108
- queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
109
- ' \ " $column \ " :{\ "\$ regex\ " : \ " ^$query \ " , \ "\$ options\ " : \" i \ " }' ));
108
+ queries.add (MapEntry <String , dynamic >(
109
+ _SINGLE_QUERY , ' "$column ":{"\$ regex": "^$query ", "\$ options": "i "}' ));
110
110
}
111
111
}
112
112
@@ -115,10 +115,10 @@ class QueryBuilder<T extends ParseObject> {
115
115
{bool caseSensitive = false }) {
116
116
if (caseSensitive) {
117
117
queries.add (MapEntry <String , dynamic >(
118
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ regex\ " : \ " $query \$\ " }' ));
118
+ _SINGLE_QUERY , '"$column ":{"\$ regex": "$query \$ "}' ));
119
119
} else {
120
120
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
121
- '\ " $column \ " :{\ "\$ regex\ " : \ " $query \$\ " , \ "\$ options\ " : \" i \ " }' ));
121
+ '"$column ":{"\$ regex": "$query \$ ", "\$ options": "i "}' ));
122
122
}
123
123
}
124
124
@@ -183,7 +183,7 @@ class QueryBuilder<T extends ParseObject> {
183
183
/// Retrieves related objets where [String] column is a relation field to the class [String] className
184
184
void whereRelatedTo (String column, String className, String objectId) {
185
185
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
186
- '\ "\$ relatedTo\ " :{\ " object\ " :{\ " __type\" : \ " Pointer\" , \ " className\" : \ " $className \" , \ " objectId\" : \ " $objectId \ " },\ " key\" : \ " $column \ " }' ));
186
+ '"\$ relatedTo":{"object":{"__type": "Pointer", "className": "$className ", "objectId": "$objectId "},"key": "$column "}' ));
187
187
}
188
188
189
189
/// Returns an object where the [String] column contains select
@@ -216,10 +216,10 @@ class QueryBuilder<T extends ParseObject> {
216
216
{bool caseSensitive = false }) {
217
217
if (caseSensitive) {
218
218
queries.add (MapEntry <String , dynamic >(
219
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ regex\ " : \ " $value \ " }' ));
219
+ _SINGLE_QUERY , '"$column ":{"\$ regex": "$value "}' ));
220
220
} else {
221
- queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
222
- ' \ " $column \ " :{\ "\$ regex\ " : \ " $value \ " , \ "\$ options\ " : \" i \ " }' ));
221
+ queries.add (MapEntry <String , dynamic >(
222
+ _SINGLE_QUERY , ' "$column ":{"\$ regex": "$value ", "\$ options": "i "}' ));
223
223
}
224
224
}
225
225
@@ -230,7 +230,7 @@ class QueryBuilder<T extends ParseObject> {
230
230
bool orderByScore = true ,
231
231
bool diacriticSensitive = false }) {
232
232
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
233
- '\ " $column \ " :{\ "\$ text\ " :{\ "\$ search\ " :{\ "\$ term\ " : \ " $query \ " , \ "\$ caseSensitive\ " : $caseSensitive , \ "\$ diacriticSensitive\ " : $diacriticSensitive }}}' ));
233
+ '"$column ":{"\$ text":{"\$ search":{"\$ term": "$query ", "\$ caseSensitive": $caseSensitive , "\$ diacriticSensitive": $diacriticSensitive }}}' ));
234
234
if (orderByScore) {
235
235
orderByAscending ('\$ score' );
236
236
keysToReturn (['\$ score' ]);
@@ -242,7 +242,7 @@ class QueryBuilder<T extends ParseObject> {
242
242
final double latitude = point.latitude;
243
243
final double longitude = point.longitude;
244
244
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
245
- '\ " $column \ " :{\ "\$ nearSphere\ " :{\ " __type\" : \ " GeoPoint\" , \ " latitude\ " :$latitude ,\ " longitude\ " :$longitude }}' ));
245
+ '"$column ":{"\$ nearSphere":{"__type": "GeoPoint", "latitude":$latitude ,"longitude":$longitude }}' ));
246
246
}
247
247
248
248
/// Returns an object with key point values near the point given and within the maximum distance given.
@@ -252,7 +252,7 @@ class QueryBuilder<T extends ParseObject> {
252
252
final double longitude = point.longitude;
253
253
254
254
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
255
- '\ " $column \ " :{\ "\$ nearSphere\ " :{\ " __type\" : \ " GeoPoint\" , \ " latitude\ " :$latitude ,\ " longitude\ " :$longitude },\ "\$ maxDistanceInMiles\ " :$maxDistance }' ));
255
+ '"$column ":{"\$ nearSphere":{"__type": "GeoPoint", "latitude":$latitude ,"longitude":$longitude },"\$ maxDistanceInMiles":$maxDistance }' ));
256
256
}
257
257
258
258
/// Returns an object with key point values near the point given and within the maximum distance given.
@@ -262,7 +262,7 @@ class QueryBuilder<T extends ParseObject> {
262
262
final double longitude = point.longitude;
263
263
264
264
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
265
- '\ " $column \ " :{\ "\$ nearSphere\ " :{\ " __type\" : \ " GeoPoint\" , \ " latitude\ " :$latitude ,\ " longitude\ " :$longitude },\ "\$ maxDistanceInKilometers\ " :$maxDistance }' ));
265
+ '"$column ":{"\$ nearSphere":{"__type": "GeoPoint", "latitude":$latitude ,"longitude":$longitude },"\$ maxDistanceInKilometers":$maxDistance }' ));
266
266
}
267
267
268
268
/// Returns an object with key point values near the point given and within the maximum distance given.
@@ -272,7 +272,7 @@ class QueryBuilder<T extends ParseObject> {
272
272
final double longitude = point.longitude;
273
273
274
274
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
275
- '\ " $column \ " :{\ "\$ nearSphere\ " :{\ " __type\" : \ " GeoPoint\" , \ " latitude\ " :$latitude ,\ " longitude\ " :$longitude },\ "\$ maxDistanceInRadians\ " :$maxDistance }' ));
275
+ '"$column ":{"\$ nearSphere":{"__type": "GeoPoint", "latitude":$latitude ,"longitude":$longitude },"\$ maxDistanceInRadians":$maxDistance }' ));
276
276
}
277
277
278
278
/// Returns an object with key point values contained within a given rectangular geographic bounding box.
@@ -285,20 +285,21 @@ class QueryBuilder<T extends ParseObject> {
285
285
final double longitudeN = northeast.longitude;
286
286
287
287
queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
288
- '\ " $column \ " :{\ "\$ within\ " :{\ "\$ box\ " : [{\ " __type\ " : \ " GeoPoint\" , \ " latitude\ " :$latitudeS ,\ " longitude\ " :$longitudeS },{\ " __type\ " : \ " GeoPoint\" , \ " latitude\ " :$latitudeN ,\ " longitude\ " :$longitudeN }]}}' ));
288
+ '"$column ":{"\$ within":{"\$ box": [{"__type": "GeoPoint", "latitude":$latitudeS ,"longitude":$longitudeS },{"__type": "GeoPoint", "latitude":$latitudeN ,"longitude":$longitudeN }]}}' ));
289
289
}
290
290
291
291
/// Return an object with key coordinates be contained within and on the bounds of a given polygon.
292
292
/// Supports closed and open (last point is connected to first) paths
293
293
/// Polygon must have at least 3 points
294
294
void whereWithinPolygon (String column, List <ParseGeoPoint > points) {
295
- if (points.length < 3 )
295
+ if (points.length < 3 ) {
296
296
throw ArgumentError ('Polygon must have at least 3 points' );
297
+ }
297
298
Map <String , dynamic > dictionary = < String , dynamic > {};
298
299
dictionary['\$ polygon' ] = points.map ((e) => e.toJson ()).toList ();
299
300
300
- queries.add (MapEntry <String , dynamic >(_SINGLE_QUERY ,
301
- ' \ " $column \ " :{\ "\$ geoWithin\ " :${jsonEncode (dictionary )}}' ));
301
+ queries.add (MapEntry <String , dynamic >(
302
+ _SINGLE_QUERY , ' "$column ":{"\$ geoWithin":${jsonEncode (dictionary )}}' ));
302
303
}
303
304
304
305
/// Add a constraint to the query that requires a particular key's value match another QueryBuilder
@@ -308,7 +309,7 @@ class QueryBuilder<T extends ParseObject> {
308
309
query._buildQueryRelational (query.object.parseClassName);
309
310
310
311
queries.add (MapEntry <String , dynamic >(
311
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ inQuery\ " :$inQuery }' ));
312
+ _SINGLE_QUERY , '"$column ":{"\$ inQuery":$inQuery }' ));
312
313
}
313
314
314
315
///Add a constraint to the query that requires a particular key's value does not match another QueryBuilder
@@ -318,7 +319,7 @@ class QueryBuilder<T extends ParseObject> {
318
319
query._buildQueryRelational (query.object.parseClassName);
319
320
320
321
queries.add (MapEntry <String , dynamic >(
321
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ notInQuery\ " :$inQuery }' ));
322
+ _SINGLE_QUERY , '"$column ":{"\$ notInQuery":$inQuery }' ));
322
323
}
323
324
324
325
/// Add a constraint to the query that requires a particular key's value matches a value for a key in the results of another ParseQuery.
@@ -338,7 +339,7 @@ class QueryBuilder<T extends ParseObject> {
338
339
query._buildQueryRelationalKey (query.object.parseClassName, keyInQuery);
339
340
340
341
queries.add (MapEntry <String , dynamic >(
341
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ select\ " :$inQuery }' ));
342
+ _SINGLE_QUERY , '"$column ":{"\$ select":$inQuery }' ));
342
343
}
343
344
344
345
/// Add a constraint to the query that requires a particular key's value does not match any value for a key in the results of another ParseQuery
@@ -358,24 +359,24 @@ class QueryBuilder<T extends ParseObject> {
358
359
query._buildQueryRelationalKey (query.object.parseClassName, keyInQuery);
359
360
360
361
queries.add (MapEntry <String , dynamic >(
361
- _SINGLE_QUERY , '\ " $column \ " :{\ "\$ dontSelect\ " :$inQuery }' ));
362
+ _SINGLE_QUERY , '"$column ":{"\$ dontSelect":$inQuery }' ));
362
363
}
363
364
364
365
/// Finishes the query and calls the server
365
366
///
366
367
/// Make sure to call this after defining your queries
367
- Future <ParseResponse > query <T extends ParseObject >(
368
+ Future <ParseResponse > query <U extends ParseObject >(
368
369
{ProgressCallback ? progressCallback}) async {
369
- return object.query <T >(
370
+ return object.query <U >(
370
371
buildQuery (),
371
372
progressCallback: progressCallback,
372
373
);
373
374
}
374
375
375
- Future <ParseResponse > distinct <T extends ParseObject >(
376
+ Future <ParseResponse > distinct <U extends ParseObject >(
376
377
String className) async {
377
378
final String queryString = 'distinct=$className ' ;
378
- return object.distinct <T >(queryString);
379
+ return object.distinct <U >(queryString);
379
380
}
380
381
381
382
///Counts the number of objects that match this query
@@ -392,13 +393,13 @@ class QueryBuilder<T extends ParseObject> {
392
393
/// Builds the query relational for Parse
393
394
String _buildQueryRelational (String className) {
394
395
queries = _checkForMultipleColumnInstances (queries);
395
- return '{\ " where\ " :{${buildQueries (queries )}},\ " className\" : \ " $className \ " ${getLimitersRelational (limiters )}}' ;
396
+ return '{"where":{${buildQueries (queries )}},"className": "$className "${getLimitersRelational (limiters )}}' ;
396
397
}
397
398
398
399
/// Builds the query relational with Key for Parse
399
400
String _buildQueryRelationalKey (String className, String keyInQuery) {
400
401
queries = _checkForMultipleColumnInstances (queries);
401
- return '{\ " query\ " :{\ " className\" : \ " $className \" , \ " where\ " :{${buildQueries (queries )}}},\ " key\" : \ " $keyInQuery \ " }' ;
402
+ return '{"query":{"className": "$className ", "where":{${buildQueries (queries )}}},"key": "$keyInQuery "}' ;
402
403
}
403
404
404
405
/// Builds the query for Parse
@@ -446,15 +447,14 @@ class QueryBuilder<T extends ParseObject> {
446
447
447
448
if (queryOperator == _NO_OPERATOR_NEEDED ) {
448
449
return MapEntry <String , dynamic >(
449
- _NO_OPERATOR_NEEDED , '\ " $key \ " : ${jsonEncode (value )}' );
450
+ _NO_OPERATOR_NEEDED , '"$key ": ${jsonEncode (value )}' );
450
451
} else {
451
- String queryString = '\" $key \" :' ;
452
- final Map <String , dynamic > queryOperatorAndValueMap =
453
- Map <String , dynamic >();
452
+ String queryString = '"$key ":' ;
453
+ final Map <String , dynamic > queryOperatorAndValueMap = < String , dynamic > {};
454
454
queryOperatorAndValueMap[queryOperator] = parseEncode (value);
455
455
final String formattedQueryOperatorAndValue =
456
456
jsonEncode (queryOperatorAndValueMap);
457
- queryString += '$ formattedQueryOperatorAndValue ' ;
457
+ queryString += formattedQueryOperatorAndValue;
458
458
return MapEntry <String , dynamic >(key, queryString);
459
459
}
460
460
}
@@ -488,7 +488,7 @@ class QueryBuilder<T extends ParseObject> {
488
488
.toList ();
489
489
490
490
// Build first part of query
491
- String queryStart = '\ " ${query .key }\ " :' ;
491
+ String queryStart = '"${query .key }":' ;
492
492
String queryEnd = '' ;
493
493
494
494
// Compact all the queries in the correct format
@@ -526,9 +526,9 @@ class QueryBuilder<T extends ParseObject> {
526
526
String result = '' ;
527
527
map.forEach ((String key, dynamic value) {
528
528
if (result.isNotEmpty) {
529
- result = result + ',\ " $key ":$value ' ;
529
+ result = result + ',"$key ":$value ' ;
530
530
} else {
531
- result = '\ " $key \ " :$value ' ;
531
+ result = '"$key ":$value ' ;
532
532
}
533
533
});
534
534
return result;
0 commit comments