diff --git a/CHANGELOG.md b/CHANGELOG.md index d649e3e48..23bc07ed9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.0.13 +Added full bool to convert objects to JSON correctly + ## 1.0.12 Fixed logout diff --git a/README.md b/README.md index 54869f96d..12abb93e9 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Want to get involved? Join our Slack channel and help out! (http://flutter-parse To install, either add to your pubspec.yaml ``` dependencies: - parse_server_sdk: ^1.0.12 + parse_server_sdk: ^1.0.13 ``` 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. diff --git a/lib/src/base/parse_constants.dart b/lib/src/base/parse_constants.dart index e596da78c..e4f7b094f 100644 --- a/lib/src/base/parse_constants.dart +++ b/lib/src/base/parse_constants.dart @@ -1,7 +1,7 @@ part of flutter_parse_sdk; // Library -const String keySdkVersion = '1.0.12'; +const String keySdkVersion = '1.0.13'; const String keyLibraryName = 'Flutter Parse SDK'; // End Points diff --git a/lib/src/objects/parse_base.dart b/lib/src/objects/parse_base.dart index 8cc15fba9..ad51dabb1 100644 --- a/lib/src/objects/parse_base.dart +++ b/lib/src/objects/parse_base.dart @@ -24,7 +24,7 @@ abstract class ParseBase { /// Converts object to [String] in JSON format @protected - toJson({bool forApiRQ: false}) { + toJson({bool full, bool forApiRQ: false}) { final map = { keyVarClassName: className, }; @@ -42,7 +42,7 @@ abstract class ParseBase { } getObjectData().forEach((key, value) { - if (!map.containsKey(key)) map[key] = parseEncode(value); + if (!map.containsKey(key)) map[key] = parseEncode(value, full: full); }); if (forApiRQ) { @@ -135,9 +135,10 @@ abstract class ParseBase { Future pin() async { if (objectId != null) { await unpin(); - var objectToSave = json.encode(toJson()); - await ParseCoreData().getStore() - ..setString(objectId, objectToSave); + final Map objectMap = parseEncode(this, full: true); + final String json = jsonEncode(objectMap); + var store = await ParseCoreData().getStore(); + store.setString(objectId, json); return true; } else { return false; diff --git a/lib/src/objects/parse_file.dart b/lib/src/objects/parse_file.dart index 531d1422e..31a6bd648 100644 --- a/lib/src/objects/parse_file.dart +++ b/lib/src/objects/parse_file.dart @@ -11,7 +11,7 @@ class ParseFile extends ParseObject { bool get saved => url != null; @override - toJson({bool forApiRQ: false}) => + toJson({bool full: false, bool forApiRQ: false}) => {'__type': keyFile, 'name': name, 'url': url}; @override diff --git a/lib/src/utils/parse_encoder.dart b/lib/src/utils/parse_encoder.dart index 455cb1010..e2d14bc72 100644 --- a/lib/src/utils/parse_encoder.dart +++ b/lib/src/utils/parse_encoder.dart @@ -9,7 +9,7 @@ dynamic dateTimeEncoder(dynamic item) { } /// Custom json encoder for types related to parse -dynamic parseEncode(dynamic value) { +dynamic parseEncode(dynamic value, {bool full = false}) { if (value is DateTime) return _encodeDate(value); if (value is List) { @@ -19,7 +19,11 @@ dynamic parseEncode(dynamic value) { } if (value is ParseObject) { - return _encodeObject(value); + if (full) { + return value.toJson(full: full); + } else { + return _encodeObject(value); + } } if (value is ParseUser) { diff --git a/pubspec.yaml b/pubspec.yaml index b8f53edbe..7f67d35dd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: parse_server_sdk description: Flutter plugin for Parse Server, (https://parseplatform.org), (https://back4app.com) -version: 1.0.12 +version: 1.0.13 homepage: https://github.com/phillwiggins/flutter_parse_sdk author: PhillWiggins