Skip to content

Commit b103aff

Browse files
authored
Merge pull request #4 from phillwiggins/master
Merge upstream.
2 parents 097e116 + e70f3e1 commit b103aff

15 files changed

+78
-52
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 1.0.11
2+
ParseFile fixed
3+
Anonymous login
4+
SecurityContext
5+
CloudFunctions with objects
6+
17
## 1.0.10
28
Add ParseConfig.
39
Fixed whereEqualsTo('', PARSEOBJECT) and other queries

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Want to get involved? Join our Slack channel and help out! (http://flutter-parse
1313
To install, either add to your pubspec.yaml
1414
```
1515
dependencies:
16-
parse_server_sdk: ^1.0.10
16+
parse_server_sdk: ^1.0.11
1717
```
1818
or clone this repository and add to your project. As this is an early development with multiple contributors, it is probably best to download/clone and keep updating as an when a new feature is added.
1919

@@ -33,8 +33,10 @@ Parse().initialize(
3333
ApplicationConstants.keyApplicationId,
3434
ApplicationConstants.keyParseServerUrl,
3535
masterKey: ApplicationConstants.keyParseMasterKey,
36-
debug: true,
37-
liveQuery: true);
36+
clientKey: ApplicationConstants.keyParseClientKey,
37+
debug: true,
38+
liveQuery: true,
39+
securityContext: securityContext);
3840
```
3941

4042
## Queries

example/lib/diet_plan.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import 'dart:core';
22

3-
import 'package:parse_server_sdk/parse.dart';
3+
import 'package:parse_server_sdk/parse_server_sdk.dart';
44

55
class DietPlan extends ParseObject implements ParseCloneable {
6-
76
DietPlan() : super(_keyTableName);
8-
DietPlan.clone(): this();
7+
DietPlan.clone() : this();
98

109
/// Looks strangely hacky but due to Flutter not using reflection, we have to
1110
/// mimic a clone
12-
@override clone(Map map) => DietPlan.clone()..fromJson(map);
11+
@override
12+
clone(Map map) => DietPlan.clone()..fromJson(map);
1313

1414
static const String _keyTableName = 'Diet_Plans';
1515
static const String keyName = 'Name';

example/lib/main.dart

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_plugin_example/application_constants.dart';
33
import 'package:flutter_plugin_example/diet_plan.dart';
4-
import 'package:parse_server_sdk/parse.dart';
4+
import 'package:parse_server_sdk/parse_server_sdk.dart';
55

66
void main() => runApp(new MyApp());
77

@@ -178,20 +178,13 @@ class _MyAppState extends State<MyApp> {
178178
}
179179

180180
function() async {
181-
var user =
182-
ParseUser("TestFlutter", "TestPassword123", "[email protected]");
183-
await user.signUp();
184-
var loginResponse = await user.login();
185-
if (loginResponse.success) user = loginResponse.result;
186-
187-
var customClient = ParseHTTPClient();
188-
customClient.additionalHeaders = {
189-
keyHeaderSessionToken: ParseCoreData().sessionId
190-
};
191-
var function = ParseCloudFunction('hello', client: customClient);
192-
function.execute();
193-
194-
user.destroy();
181+
var function = ParseCloudFunction('hello');
182+
var result = await function.executeObjectFunction<ParseObject>();
183+
if (result.success) {
184+
if (result.result is ParseObject) {
185+
print((result.result as ParseObject).className);
186+
}
187+
}
195188
}
196189

197190
functionWithParameters() async {

lib/parse.dart renamed to lib/parse_server_sdk.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'dart:io';
66
import 'dart:typed_data';
77

88
import 'package:http/http.dart';
9+
import 'package:http/io_client.dart';
910
import 'package:meta/meta.dart';
1011
import 'package:path/path.dart' as path;
1112
import 'package:shared_preferences/shared_preferences.dart';
@@ -57,7 +58,6 @@ part 'src/utils/parse_utils.dart';
5758

5859
class Parse {
5960
ParseCoreData data;
60-
final ParseHTTPClient client = new ParseHTTPClient();
6161
bool _hasBeenInitialised = false;
6262

6363
/// To initialise Parse Server in your application
@@ -78,14 +78,16 @@ class Parse {
7878
String liveQueryUrl,
7979
String clientKey,
8080
String masterKey,
81-
String sessionId}) {
81+
String sessionId,
82+
SecurityContext securityContext}) {
8283
ParseCoreData.init(appId, serverUrl,
8384
debug: debug,
8485
appName: appName,
8586
liveQueryUrl: liveQueryUrl,
8687
masterKey: masterKey,
8788
clientKey: clientKey,
88-
sessionId: sessionId);
89+
sessionId: sessionId,
90+
securityContext: securityContext);
8991

9092
ParseCoreData().initStorage();
9193

@@ -100,7 +102,7 @@ class Parse {
100102
ParseResponse parseResponse;
101103

102104
try {
103-
var response = await ParseHTTPClient()
105+
var response = await ParseHTTPClient(ParseCoreData().securityContext)
104106
.get("${ParseCoreData().serverUrl}$keyEndPointHealth");
105107
parseResponse =
106108
ParseResponse.handleResponse(this, response, returnAsResult: true);

lib/src/base/parse_constants.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
part of flutter_parse_sdk;
22

33
// Library
4-
const String keySdkVersion = '1.0.10';
4+
const String keySdkVersion = '1.0.11';
55
const String keyLibraryName = 'Flutter Parse SDK';
66

77
// End Points

lib/src/data/parse_core_data.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ class ParseCoreData {
1111
/// This class should not be user unless switching servers during the app,
1212
/// which is odd. Should only be user by Parse.init
1313
static void init(appId, serverUrl,
14-
{debug, appName, liveQueryUrl, masterKey, clientKey, sessionId}) {
14+
{debug,
15+
appName,
16+
liveQueryUrl,
17+
masterKey,
18+
clientKey,
19+
sessionId,
20+
securityContext}) {
1521
_instance = ParseCoreData._init(appId, serverUrl);
1622

1723
if (debug != null) _instance.debug = debug;
@@ -20,6 +26,7 @@ class ParseCoreData {
2026
if (clientKey != null) _instance.clientKey = clientKey;
2127
if (masterKey != null) _instance.masterKey = masterKey;
2228
if (sessionId != null) _instance.sessionId = sessionId;
29+
if (securityContext != null) _instance.securityContext = securityContext;
2330
}
2431

2532
String appName;
@@ -29,6 +36,7 @@ class ParseCoreData {
2936
String masterKey;
3037
String clientKey;
3138
String sessionId;
39+
SecurityContext securityContext;
3240
bool debug;
3341
SharedPreferences storage;
3442

lib/src/network/parse_http_client.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ part of flutter_parse_sdk;
22

33
/// Creates a custom version of HTTP Client that has Parse Data Preset
44
class ParseHTTPClient extends BaseClient {
5-
final Client _client = Client();
5+
final Client _client;
66
final String _userAgent = "$keyLibraryName $keySdkVersion";
77
ParseCoreData data = ParseCoreData();
88
Map<String, String> additionalHeaders;
99

10-
ParseHTTPClient();
10+
ParseHTTPClient([SecurityContext securityContext])
11+
: _client = securityContext != null
12+
? IOClient(HttpClient(context: securityContext))
13+
: IOClient();
1114

1215
/// Overrides the call method for HTTP Client and adds custom headers
1316
@override

lib/src/objects/parse_config.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
part of flutter_parse_sdk;
22

33
class ParseConfig extends ParseObject {
4-
var _client = ParseHTTPClient();
4+
var _client = ParseHTTPClient(ParseCoreData().securityContext);
55

66
/// Creates an instance of ParseConfig so that you can grab all configs from the server
77
ParseConfig({bool debug, ParseHTTPClient client}) : super('config') {
@@ -14,7 +14,8 @@ class ParseConfig extends ParseObject {
1414
try {
1515
var uri = "${ParseCoreData().serverUrl}/config";
1616
var result = await _client.get(uri);
17-
return handleResponse(this, result, ParseApiRQ.getConfigs, _debug, className);
17+
return handleResponse(
18+
this, result, ParseApiRQ.getConfigs, _debug, className);
1819
} on Exception catch (e) {
1920
return handleException(e, ParseApiRQ.getConfigs, _debug, className);
2021
}
@@ -26,7 +27,8 @@ class ParseConfig extends ParseObject {
2627
var uri = "${ParseCoreData().serverUrl}/config";
2728
var body = "{\"params\":{\"$key\": \"${parseEncode(value)}\"}}";
2829
var result = await _client.put(uri, body: body);
29-
return handleResponse(this, result, ParseApiRQ.addConfig, _debug, className);
30+
return handleResponse(
31+
this, result, ParseApiRQ.addConfig, _debug, className);
3032
} on Exception catch (e) {
3133
return handleException(e, ParseApiRQ.addConfig, _debug, className);
3234
}

lib/src/objects/parse_file.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ class ParseFile extends ParseObject {
3333
ParseFile(this._file,
3434
{String name, String url, bool debug, ParseHTTPClient client})
3535
: super(keyFile) {
36-
client == null ? _client = ParseHTTPClient() : _client = client;
36+
client == null
37+
? _client = ParseHTTPClient(ParseCoreData().securityContext)
38+
: _client = client;
39+
3740
_debug = isDebugEnabled(objectLevelDebug: debug);
3841
if (_file != null) {
3942
this._fileName = path.basename(_file.path);
@@ -93,6 +96,7 @@ class ParseFile extends ParseObject {
9396
var uri = _client.data.serverUrl + "$_path";
9497
final body = await _file.readAsBytes();
9598
final response = await _client.post(uri, headers: headers, body: body);
96-
return handleResponse<ParseFile>(this, response, ParseApiRQ.upload, _debug, className);
99+
return handleResponse<ParseFile>(
100+
this, response, ParseApiRQ.upload, _debug, className);
97101
}
98102
}

0 commit comments

Comments
 (0)