Skip to content

Commit c093ff1

Browse files
committed
Aggregate done!
1 parent e65a3f5 commit c093ff1

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

packages/dart/example/main.dart

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,18 @@ Future<void> main() async {
1414
..set('Name', 'Ketogenic')
1515
..set('Fat', 65);
1616

17-
// ParseAggregate('className', pipeline: {}).execute();
17+
1818

1919
var response = await dietPlan.save();
2020

2121
if (response.success) {
2222
dietPlan = response.results?.first;
2323
print("Response received successfully");
2424
}
25+
26+
final res = await ParseAggregate('DietPlan', pipeline: {
27+
r'$match': {'Name': 'Ketogenic'}
28+
}).execute();
29+
30+
print(res);
2531
}

packages/dart/lib/src/network/parse_aggregate.dart

+9-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ part of '../../parse_server_sdk.dart';
22

33
class ParseAggregate {
44
final String className;
5-
final Map<String, dynamic> pipeline;
5+
Map<String, dynamic> pipeline;
66
final bool? debug;
77
final ParseClient? client;
88
final bool? autoSendSessionId;
@@ -11,16 +11,20 @@ class ParseAggregate {
1111
ParseAggregate(this.className,{required this.pipeline,this.debug, this.client, this.autoSendSessionId, this.parseClassName});
1212

1313
Future<ParseResponse> execute() async {
14+
Map<String,String> _pipeline={};
1415
if(pipeline.isEmpty){
1516
throw ArgumentError('pipeline must not be empty. Please add pipeline operations to aggregate data. Example: {"\$group": {"_id": "\$userId", "totalScore": {"\$sum": "\$score"}}} ');
1617
}
18+
else{
19+
_pipeline.addAll({'pipeline':jsonEncode([pipeline])});
20+
}
1721
final debugBool = isDebugEnabled(objectLevelDebug: debug);
18-
final result = await ParseHTTPClient().get(
19-
'${ParseCoreData().serverUrl}$keyEndPointAggregate/$className',
20-
replace: UrlReplace(queryParameters: pipeline)
22+
final result = await ParseObject(className)._client.get(
23+
Uri.parse('${ParseCoreData().serverUrl}$keyEndPointAggregate$className').replace(queryParameters: _pipeline).toString(),
2124
);
25+
print('result >>> ${result.data}');
2226
return handleResponse<ParseObject>(
23-
this,
27+
ParseObject(className),
2428
result,
2529
ParseApiRQ.get,
2630
debugBool,

packages/dart/lib/src/network/parse_http_client.dart

+2-13
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import 'dart:convert';
22

33
import 'package:http/http.dart' as http;
44
import 'package:parse_server_sdk/parse_server_sdk.dart';
5-
import 'package:parse_server_sdk/src/utils/url_replace.dart';
65
import 'package:universal_io/io.dart';
76

87
import 'http_client_io.dart' if (dart.library.js) 'http_client_js.dart';
@@ -30,20 +29,10 @@ class ParseHTTPClient extends ParseClient {
3029
String path, {
3130
ParseNetworkOptions? options,
3231
ProgressCallback? onReceiveProgress,
33-
UrlReplace? replace
3432
}) async {
33+
3534
final http.Response response = await _client.get(
36-
replace != null ? Uri.parse(path).replace(
37-
scheme:replace.scheme,
38-
userInfo:replace.userInfo,
39-
host:replace.host,
40-
port:replace.port,
41-
path:replace.path,
42-
pathSegments:replace.pathSegments,
43-
query:replace.query,
44-
queryParameters:replace.queryParameters,
45-
fragment:replace.fragment,
46-
): Uri.parse(path),
35+
Uri.parse(path),
4736
headers: options?.headers,
4837
);
4938
return ParseNetworkResponse(

packages/flutter/example/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
*.swp
66
.DS_Store
77
.atom/
8+
.build/
89
.buildlog/
910
.history
1011
.svn/
12+
.swiftpm/
1113
migrate_working_dir/
1214

1315
# IntelliJ related

0 commit comments

Comments
 (0)