Skip to content

Commit 081ce47

Browse files
author
wigginsp
committed
Version 1.0.4 - Fixing duplicate 'getAll' & pin issue
1 parent 19ab3a7 commit 081ce47

File tree

5 files changed

+34
-51
lines changed

5 files changed

+34
-51
lines changed

example/lib/diet_plan.dart

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,8 @@ class DietPlan extends ParseObject {
3232
int get status => get<int>(STATUS);
3333
set status(int status) => set<int>(STATUS, status);
3434

35-
@override
36-
fromJson(Map objectData) {
37-
super.setObjectData(objectData);
38-
return this;
39-
}
40-
4135
@override
4236
String toString() {
4337
return toJson().toString();
4438
}
45-
46-
@override
47-
dynamic copy() {
48-
return DietPlan();
49-
}
5039
}

lib/src/objects/parse_base.dart

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
part of flutter_parse_sdk;
22

33
abstract class ParseBase {
4+
5+
String className;
6+
47
/// Stores all the values of a class
58
Map _objectData = Map<String, dynamic>();
69

@@ -22,30 +25,24 @@ abstract class ParseBase {
2225
}
2326

2427
/// Creates a copy of this class
25-
@protected
26-
copy() => fromJson(JsonDecoder().convert(toJson()));
28+
@protected copy() => fromJson(JsonDecoder().convert(toJson()));
2729

2830
/// Sets all the objects variables
29-
@protected
30-
setObjectData(Map objectData) {
31+
@protected setObjectData(Map objectData) {
3132
_objectData = objectData;
3233
}
3334

3435
/// Returns the objects variables
35-
@protected
36-
getObjectData() {
36+
@protected getObjectData() {
3737
return _objectData;
3838
}
3939

4040
/// Saves in storage
41-
@protected
42-
saveInStorage(String key) async {
41+
@protected saveInStorage(String key) async {
4342
await ParseCoreData().getStore().setString(key, toJson());
4443
}
4544

46-
/// Needs overriding to create deep copy affect
47-
@override
48-
fromJson(Map objectData) {}
45+
@protected static fromJson(Map objectData) {}
4946

5047
/// Sets type [T] from objectData
5148
///

lib/src/objects/parse_object.dart

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

33
class ParseObject extends ParseBase {
4+
@override
45
final String className;
6+
57
String _path;
68
bool _debug;
79
ParseHTTPClient _client;
@@ -25,6 +27,14 @@ class ParseObject extends ParseBase {
2527
_client = client;
2628
}
2729

30+
@override
31+
static fromJson(objectData) {
32+
var object = ParseObject(objectData['className']);
33+
object.setObjectData(objectData);
34+
if (object.updatedAt == null) object.updatedAt = object.createdAt;
35+
return object;
36+
}
37+
2838
/// Gets an object from the server using it's [String] objectId
2939
getObject(String objectId) async {
3040
try {
@@ -97,7 +107,7 @@ class ParseObject extends ParseBase {
97107

98108
/// Handles an API response and logs data if [bool] debug is enabled
99109
@protected
100-
ParseResponse handleResponse(Response response, ParseApiRQ type) {
110+
ParseResponse handleResponse<ParseObject>(Response response, ParseApiRQ type) {
101111
ParseResponse parseResponse = ParseResponse.handleResponse(this, response);
102112

103113
if (_debug) {

lib/src/objects/parse_user.dart

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

33
class ParseUser extends ParseBase {
4-
static final String className = '_User';
4+
@override
5+
final String className = '_User';
6+
57
static final String path = "/classes/$className";
68
bool _debug;
79
ParseHTTPClient _client;
@@ -38,22 +40,13 @@ class ParseUser extends ParseBase {
3840
}
3941

4042
/// Returns a [User] from a [Map] object
41-
fromJson(objectData) {
42-
if (getObjectData() == null) {
43-
setObjectData(objectData);
44-
} else {
45-
getObjectData().addAll(objectData);
46-
}
47-
48-
objectId = getObjectData()[OBJECT_ID];
49-
createdAt = stringToDateTime(getObjectData()[CREATED_AT]);
50-
updatedAt = stringToDateTime(getObjectData()[UPDATED_AT]);
51-
52-
if (updatedAt == null) updatedAt = createdAt;
53-
54-
saveInStorage(PARSE_STORE_USER);
55-
56-
return getObjectData();
43+
@override
44+
static fromJson(objectData) {
45+
var user = ParseUser(null, null, null);
46+
user.setObjectData(objectData);
47+
if (user.updatedAt == null) user.updatedAt = user.createdAt;
48+
user.saveInStorage(PARSE_STORE_USER);
49+
return user;
5750
}
5851

5952
/// Returns a [String] that's human readable. Ideal for printing logs
@@ -255,13 +248,7 @@ class ParseUser extends ParseBase {
255248

256249
if (userMap != null) {
257250
ParseCoreData().sessionId = userMap['sessionToken'];
258-
259-
var user = ParseUser(
260-
userMap['username'],
261-
userMap['password'],
262-
userMap['emailAddress']);
263-
264-
user.fromJson(userMap);
251+
var user = ParseUser.fromJson(userMap);
265252
return user;
266253
}
267254
}
@@ -284,7 +271,7 @@ class ParseUser extends ParseBase {
284271
/// Handles all the response data for this class
285272
_handleResponse(Response response, ParseApiRQ type) {
286273

287-
ParseResponse parseResponse = ParseResponse.handleResponse(this, response);
274+
ParseResponse parseResponse = ParseResponse.handleResponse<ParseUser>(this, response);
288275
if (_debug) {
289276
logger(ParseCoreData().appName, className, type.toString(), parseResponse);
290277
}

lib/src/utils/parse_decoder.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ class ParseDecoder {
5858
return base64.decode(val);
5959
case "Pointer":
6060
String className = map["className"];
61-
return new ParseObject(className)..fromJson(map);
61+
return ParseObject.fromJson(map);
6262
case "Object":
6363
String className = map["className"];
6464
if (className == '_User') {
65-
return new ParseUser(map['username'], map['password'], map['emailaddress'])..fromJson(map);
65+
return ParseUser.fromJson(map);
6666
}
67-
return new ParseObject(className)..fromJson(map);
67+
return ParseObject.fromJson(map);
6868
case "GeoPoint":
6969
num latitude = map["latitude"] ?? 0.0;
7070
num longitude = map["longitude"] ?? 0.0;

0 commit comments

Comments
 (0)