Skip to content

Commit 8864c43

Browse files
committed
Added new project structure and started with query building. Needs tidy up.
1 parent a986368 commit 8864c43

23 files changed

+975
-548
lines changed

.idea/workspace.xml

Lines changed: 387 additions & 401 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/lib/diet_plan.dart

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,52 @@
1-
import 'package:parse_server_sdk/parse_object.dart';
1+
import 'dart:core';
22

3-
class DietPlan extends ParseObject {
4-
static const String DIET_PLAN = 'Diet_Plans';
3+
import 'package:parse_server_sdk/objects/parse_object.dart';
54

5+
class DietPlan extends ParseObject {
66
DietPlan() : super(DIET_PLAN);
77

88
String name;
9+
String description;
10+
num protein;
11+
num carbs;
12+
num fat;
13+
num status;
14+
15+
static const String DIET_PLAN = 'Diet_Plans';
16+
static const String NAME = 'Name';
17+
static const String DESCRIPTION = 'Description';
18+
static const String PROTEIN = 'Protein';
19+
static const String CARBS = 'Carbs';
20+
static const String FAT = 'Fat';
21+
static const String STATUS = 'Status';
22+
23+
@override
24+
dynamic fromJson(Map<String, dynamic> objectData) {
25+
this.name = objectData[NAME];
26+
this.description = objectData[DESCRIPTION];
27+
this.protein = objectData[PROTEIN];
28+
this.carbs = objectData[CARBS];
29+
this.fat = objectData[FAT];
30+
this.status = objectData[STATUS];
31+
return this;
32+
}
33+
34+
Map<String, dynamic> toJson() => {
35+
NAME: name,
36+
DESCRIPTION: description,
37+
PROTEIN: protein,
38+
CARBS: carbs,
39+
FAT: fat,
40+
STATUS: status,
41+
};
942

10-
DietPlan.fromJson(Map<String, dynamic> json)
11-
: name = json['name'],
12-
super(DIET_PLAN);
43+
@override
44+
String toString() {
45+
return toJson().toString();
46+
}
1347

14-
Map<String, dynamic> toJson() => {'name': name};
15-
}
48+
@override
49+
dynamic copy() {
50+
return DietPlan();
51+
}
52+
}

example/lib/main.dart

Lines changed: 68 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ import 'dart:async';
22

33
import 'package:flutter/material.dart';
44
import 'package:flutter_plugin_example/application_constants.dart';
5+
import 'package:flutter_plugin_example/diet_plan.dart';
6+
import 'package:parse_server_sdk/objects/parse_object.dart';
7+
import 'package:parse_server_sdk/network/parse_query.dart';
8+
import 'package:parse_server_sdk/objects/parse_user.dart';
59
import 'package:parse_server_sdk/parse.dart';
6-
import 'package:parse_server_sdk/parse_user.dart';
710

811
void main() => runApp(new MyApp());
912

@@ -17,19 +20,80 @@ class _MyAppState extends State<MyApp> {
1720
void initState() {
1821
super.initState();
1922
initParse();
23+
getAllItems();
24+
getSingleItem();
25+
query();
26+
queryByContainedIn();
2027
initUser();
2128
}
2229

2330
Future<void> initParse() async {
31+
32+
// Initialize parse
2433
Parse().initialize(
2534
appId: ApplicationConstants.PARSE_APPLICATION_ID,
2635
serverUrl: ApplicationConstants.PARSE_SERVER_URL,
2736
masterKey: ApplicationConstants.PARSE_MASTER_KEY);
2837
}
2938

39+
void getAllItems() {
40+
DietPlan().getAll().then((response) {
41+
if (response.success){
42+
43+
for (var plan in response.result) {
44+
print(ApplicationConstants.APP_NAME + ": " + (plan as DietPlan).name);
45+
}
46+
47+
} else {
48+
print(ApplicationConstants.APP_NAME + ": " + response.exception.message);
49+
}
50+
});
51+
}
52+
53+
void getSingleItem() {
54+
DietPlan().get('R5EonpUDWy').then((response) {
55+
if (response.success){
56+
print(ApplicationConstants.APP_NAME + ": " + (response.result as DietPlan).toString());
57+
} else {
58+
print(ApplicationConstants.APP_NAME + ": " + response.exception.message);
59+
}
60+
});
61+
}
62+
63+
void query() {
64+
// Query for an object by name
65+
QueryBuilder()
66+
..object = DietPlan()
67+
..field = DietPlan.NAME
68+
..equals = ['Paleo']
69+
..query().then((response){
70+
71+
if (response.success){
72+
print(ApplicationConstants.APP_NAME + ": " + ((response.result as List<ParseObject>)[0] as DietPlan).toString());
73+
} else {
74+
print(ApplicationConstants.APP_NAME + ": " + response.exception.message);
75+
}
76+
});
77+
}
78+
79+
void queryByContainedIn() {
80+
// Query for an object by name
81+
QueryBuilder()
82+
..object = DietPlan()
83+
..field = DietPlan.NAME
84+
..contains = ['Diet']
85+
..query().then((response){
86+
87+
if (response.success){
88+
print(ApplicationConstants.APP_NAME + ": " + ((response.result as List<ParseObject>)[0] as DietPlan).toString());
89+
} else {
90+
print(ApplicationConstants.APP_NAME + ": " + response.exception.message);
91+
}
92+
});
93+
}
94+
3095
Future<void> initUser() async {
31-
User()
32-
.createNewUser("TestFlutter", "TestPassword123", "TestEmail@Email.com");
96+
User().createNewUser("TestFlutter", "TestPassword123", "TestEmail@Email.com");
3397

3498
User().login().then((val) {
3599
print(val);
@@ -49,4 +113,4 @@ class _MyAppState extends State<MyApp> {
49113
),
50114
);
51115
}
52-
}
116+
}

lib/base/parse_constants.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class ParseConstants {
2+
3+
static const String PARSE_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm";
4+
static const String OBJECT_ID = 'objectId';
5+
static const String CREATED_AT = 'createdAt';
6+
static const String UPDATED_AT = 'updatedAT';
7+
}

lib/data/parse_data_objects.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import 'package:parse_server_sdk/objects/parse_object.dart';
2+
3+
class ParseDataObjects {
4+
static ParseDataObjects _instance;
5+
6+
static ParseDataObjects get instance => _instance;
7+
8+
static void init(objects) =>
9+
_instance ??= ParseDataObjects._init(objects);
10+
11+
Map<ParseObject, String> objects;
12+
13+
ParseDataObjects._init(this.objects);
14+
15+
factory ParseDataObjects() => _instance;
16+
17+
@override
18+
String toString() => "";
19+
}

lib/data/parse_data_server.dart

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class ParseDataServer {
2+
static ParseDataServer _instance;
3+
4+
static ParseDataServer get instance => _instance;
5+
6+
static void init(appId, serverUrl, {liveQueryUrl, masterKey, sessionId}) =>
7+
_instance ??= ParseDataServer._init(appId, serverUrl, liveQueryURL: liveQueryUrl, masterKey: masterKey, sessionId: sessionId);
8+
9+
String applicationId;
10+
String serverUrl;
11+
String liveQueryURL;
12+
String masterKey;
13+
String sessionId;
14+
15+
ParseDataServer._init(this.applicationId, this.serverUrl,
16+
{this.liveQueryURL, this.masterKey, this.sessionId});
17+
18+
factory ParseDataServer() => _instance;
19+
20+
void setSessionId(String sessionId){
21+
this.sessionId = sessionId;
22+
}
23+
24+
@override
25+
String toString() => "$applicationId $masterKey";
26+
}

lib/data/parse_data_user.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class ParseDataUser {
2+
static ParseDataUser _instance;
3+
4+
static ParseDataUser get instance => _instance;
5+
6+
static void init(username, password, emailAddress) =>
7+
_instance ??= ParseDataUser._init(username, password, emailAddress);
8+
9+
String username;
10+
String password;
11+
String emailAddress;
12+
13+
ParseDataUser._init(this.username, this.password, this.emailAddress);
14+
15+
factory ParseDataUser() => _instance;
16+
17+
@override
18+
String toString() =>
19+
"Username: $username \n"
20+
"Email Address:$emailAddress";
21+
}

lib/parse_http_client.dart renamed to lib/network/parse_http_client.dart

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

33
import 'package:http/http.dart' as http;
44
import 'package:http/http.dart';
5-
import 'package:parse_server_sdk/data/parse_data.dart';
5+
import 'package:parse_server_sdk/data/parse_data_server.dart';
66

77
class ParseHTTPClient extends http.BaseClient {
88
final http.Client _client = new http.Client();
99
final String _userAgent = "Dart Parse SDK 0.1";
10-
ParseData data;
10+
ParseDataServer data = ParseDataServer();
1111

1212
ParseHTTPClient();
1313

lib/parse_livequery.dart renamed to lib/network/parse_livequery.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import "dart:convert";
22
import 'package:web_socket_channel/io.dart';
3-
import 'package:parse_server_sdk/parse_http_client.dart';
3+
import 'package:parse_server_sdk/network/parse_http_client.dart';
44
import 'dart:io';
55

66
class LiveQuery {

0 commit comments

Comments
 (0)