Skip to content

Commit e3ef68c

Browse files
authored
Merge pull request #14 from phillwiggins/develop
User login, register, creation fix. Debug features added
2 parents 16080ae + ceac526 commit e3ef68c

12 files changed

+288
-256
lines changed

example/lib/main.dart

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:flutter_plugin_example/application_constants.dart';
55
import 'package:flutter_plugin_example/diet_plan.dart';
66
import 'package:parse_server_sdk/objects/parse_object.dart';
77
import 'package:parse_server_sdk/network/parse_query.dart';
8+
import 'package:parse_server_sdk/objects/parse_response.dart';
89
import 'package:parse_server_sdk/objects/parse_user.dart';
910
import 'package:parse_server_sdk/parse.dart';
1011

@@ -52,11 +53,22 @@ class _MyAppState extends State<MyApp> {
5253

5354
runTestQueries(){
5455
getAllItems();
56+
getAllItemsByName();
5557
getSingleItem();
5658
query();
5759
initUser();
5860
}
5961

62+
void getAllItemsByName() async {
63+
var apiResponse = await ParseObject('ParseTableName').getAll();
64+
65+
if (apiResponse.success){
66+
for (var testObject in apiResponse.result) {
67+
print(ApplicationConstants.APP_NAME + ": " + testObject.toString());
68+
}
69+
}
70+
}
71+
6072
void getAllItems() async {
6173
var dietPlans = await DietPlan().getAll();
6274

@@ -89,7 +101,7 @@ class _MyAppState extends State<MyApp> {
89101
if (response.success) {
90102
print(ApplicationConstants.APP_NAME +
91103
": " +
92-
((response.result as List<ParseObject>)[0] as DietPlan)
104+
((response.result as List<dynamic>).first as DietPlan)
93105
.toString());
94106
} else {
95107
print(ApplicationConstants.APP_NAME +
@@ -100,10 +112,7 @@ class _MyAppState extends State<MyApp> {
100112
}
101113

102114
initUser() async {
103-
User().createNewUser("TestFlutter", "TestPassword123", "[email protected]");
104-
105-
User().login().then((val) {
106-
print(val);
107-
});
115+
ParseUser().create("TestFlutter", "TestPassword123", "[email protected]");
116+
ParseUser().signUp();
108117
}
109118
}

lib/base/parse_constants.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ class ParseConstants {
44
static const String OBJECT_ID = 'objectId';
55
static const String CREATED_AT = 'createdAt';
66
static const String UPDATED_AT = 'updatedAT';
7+
8+
static const String HEADER_SESSION_TOKEN = 'X-Parse-Session-Token';
9+
static const String HEADER_REVOCABLE_SESSION = 'X-Parse-Revocable-Session';
710
}

lib/data/parse_data_user.dart

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,45 @@
1-
class ParseDataUser {
2-
static ParseDataUser _instance;
1+
import 'package:parse_server_sdk/objects/parse_base.dart';
32

4-
static ParseDataUser get instance => _instance;
3+
class User extends ParseBase {
4+
static User _instance;
5+
6+
static User get instance => _instance;
57

68
static void init(username, password, emailAddress) =>
7-
_instance ??= ParseDataUser._init(username, password, emailAddress);
9+
_instance ??= User._init(username, password, emailAddress);
810

11+
String acl;
912
String username;
1013
String password;
1114
String emailAddress;
1215

13-
ParseDataUser._init(this.username, this.password, this.emailAddress);
16+
User._init(this.username, this.password, this.emailAddress): super();
17+
18+
factory User() => _instance;
19+
20+
fromJson(Map<String, dynamic> objectData) {
21+
setObjectData(objectData);
1422

15-
factory ParseDataUser() => _instance;
23+
acl = getObjectData()[ACL];
24+
username = getObjectData()[USERNAME];
25+
password = getObjectData()[PASSWORD];
26+
emailAddress = getObjectData()[EMAIL];
27+
return this;
28+
}
29+
30+
Map<String, dynamic> toJson() => {
31+
ACL: acl,
32+
USERNAME: username,
33+
PASSWORD: password,
34+
EMAIL: emailAddress,
35+
};
1636

1737
@override
18-
String toString() =>
19-
"Username: $username \n"
38+
String toString() => "Username: $username \n"
2039
"Email Address:$emailAddress";
40+
41+
static const String USERNAME = 'Username';
42+
static const String EMAIL = 'Email';
43+
static const String PASSWORD = 'Password';
44+
static const String ACL = 'ACL';
2145
}

lib/data/parse_user_data.dart

Lines changed: 0 additions & 21 deletions
This file was deleted.

lib/enums/parse_enum_object_call.dart

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
enum ParseApiObjectCallType {
2+
get, getAll, create, save, query, delete
3+
}
4+
5+
getEnumValue(ParseApiObjectCallType type){
6+
switch (type){
7+
case ParseApiObjectCallType.get: {
8+
return 'get';
9+
}
10+
case ParseApiObjectCallType.getAll: {
11+
return 'getAll';
12+
}
13+
case ParseApiObjectCallType.create: {
14+
return 'create';
15+
}
16+
case ParseApiObjectCallType.save: {
17+
return 'save';
18+
}
19+
case ParseApiObjectCallType.query: {
20+
return 'query';
21+
}
22+
case ParseApiObjectCallType.delete: {
23+
return 'delete';
24+
}
25+
}
26+
}

lib/enums/parse_enum_user_call.dart

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
enum ParseApiUserCallType {
2+
currentUser, signUp, login, verificationEmailRequest, requestPasswordReset, save, destroy, all
3+
}
4+
5+
getEnumValue(ParseApiUserCallType type){
6+
switch (type){
7+
case ParseApiUserCallType.currentUser: {
8+
return 'currentUser';
9+
}
10+
case ParseApiUserCallType.signUp: {
11+
return 'signUp';
12+
}
13+
case ParseApiUserCallType.login: {
14+
return 'login';
15+
}
16+
case ParseApiUserCallType.verificationEmailRequest: {
17+
return 'verificationEmailRequest';
18+
}
19+
case ParseApiUserCallType.requestPasswordReset: {
20+
return 'requestPasswordReset';
21+
}
22+
case ParseApiUserCallType.save: {
23+
return 'save';
24+
}
25+
case ParseApiUserCallType.destroy: {
26+
return 'destroy';
27+
}
28+
case ParseApiUserCallType.all: {
29+
return 'all';
30+
}
31+
}
32+
}

lib/network/parse_query.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import 'dart:async';
22
import 'dart:convert';
33

4-
import 'package:parse_server_sdk/objects/parse_base.dart';
54
import 'package:parse_server_sdk/network/parse_http_client.dart';
65
import 'package:parse_server_sdk/objects/parse_object.dart';
76
import 'package:parse_server_sdk/objects/parse_response.dart';
87

9-
class QueryBuilder extends ParseBaseObject {
8+
class QueryBuilder {
109

1110
ParseObject object;
1211
final ParseHTTPClient client = ParseHTTPClient();
@@ -53,7 +52,7 @@ class QueryBuilder extends ParseBaseObject {
5352
return new Future(foo);
5453
}
5554

56-
Future<ParseResponse> query() async {
55+
query() async {
5756
return object.query(_buildQuery());
5857
}
5958

lib/objects/parse_base.dart

Lines changed: 16 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,46 @@
11
import 'dart:convert';
22

33
import 'package:meta/meta.dart';
4-
import 'package:parse_server_sdk/network/parse_http_client.dart';
5-
6-
abstract class ParseBaseObject {
7-
ParseHTTPClient _client;
84

5+
abstract class ParseBase {
96
Map<String, dynamic> _objectData;
7+
108
String get objectId => _objectData['objectId'];
9+
1110
DateTime get createdAt => _objectData['createdAt'];
12-
DateTime get updatedAt => _objectData['updatedAt'];
1311

14-
ParseBaseObject([this._client]){
15-
_objectData = Map<String, dynamic>();
16-
}
12+
DateTime get updatedAt => _objectData['updatedAt'];
1713

1814
@protected
19-
setClient(ParseHTTPClient client) => _client = client;
15+
toJson() => JsonEncoder().convert(getObjectData());
16+
2017
@protected
21-
getDebugStatus() => _client.data.debug;
18+
copy() => JsonDecoder().convert(fromJson(getObjectData()));
19+
2220
@protected
23-
getAppName() => _client.data.appName;
21+
setObjectData(Map<String, dynamic> objectData) => _objectData = objectData;
22+
2423
@protected
2524
getObjectData() => _objectData;
25+
2626
@protected
2727
fromJson(Map<String, dynamic> objectData) => objectData;
2828

29-
toJson() => JsonEncoder().convert(getObjectData());
30-
31-
copy() {
32-
var copy = fromJson(_objectData);
33-
return JsonDecoder().convert(copy);
34-
}
35-
36-
_getBasePath(String path) => "${_client.data.serverUrl}$path";
37-
3829
setValue(String key, dynamic value, {bool forceUpdate: true}) {
3930
if (value != null) {
40-
if (_objectData.containsKey(key)) {
41-
if (forceUpdate) _objectData[key] = value;
31+
if (getObjectData().containsKey(key)) {
32+
if (forceUpdate) getObjectData()[key] = value;
4233
} else {
43-
_objectData[key] = value;
34+
getObjectData()[key] = value;
4435
}
4536
}
4637
}
4738

4839
getValue(String key, {dynamic defaultValue, bool fromServer}) {
49-
if (_objectData.containsKey(key)) {
50-
return _objectData[key];
40+
if (getObjectData().containsKey(key)) {
41+
return getObjectData()[key];
5142
} else {
5243
return defaultValue;
5344
}
5445
}
55-
56-
_get(String objectId, String path) async {
57-
var uri = _getBasePath(path);
58-
if (objectId != null) uri += "/$objectId";
59-
return _client.get(uri);
60-
}
61-
62-
_getAll(String path) async {
63-
return _client.get(_getBasePath(path));
64-
}
65-
66-
@protected
67-
parseGetAll(String path) => _getAll(path);
68-
@protected
69-
parseGetObjectById(String objectId, String path) => _get(objectId, path);
70-
71-
_create(String path) async {
72-
var uri = _client.data.serverUrl + "$path";
73-
return _client.post(uri, body: JsonEncoder().convert(_objectData));
74-
}
75-
76-
@protected
77-
parseCreate(String path, Map objectData) => _create(path);
78-
79-
_save(String path) {
80-
if (_objectData == null) {
81-
return _create(path);
82-
} else {
83-
var uri = "${_getBasePath(path)}/$objectId";
84-
return _client.put(uri, body: JsonEncoder().convert(_objectData));
85-
}
86-
}
87-
88-
@protected
89-
parseSave(String path) => _save(path);
90-
91-
_query(String path, String query) async {
92-
var uri = "${_getBasePath(path)}?$query";
93-
return _client.get(uri);
94-
}
95-
96-
@protected
97-
parseQuery(String path, String query) => _query(path, query);
98-
99-
_delete(String path, String objectId){
100-
var uri = "${_getBasePath(path)}/$objectId";
101-
return _client.delete(uri);
102-
}
103-
104-
@protected
105-
parseDelete(String path, String query) => _delete(path, objectId);
10646
}

0 commit comments

Comments
 (0)