Skip to content

General code cleanups. #77

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 8, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions lib/parse_server_sdk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ part 'src/enums/parse_enum_api_rq.dart';

part 'src/network/parse_http_client.dart';

part 'src/network/parse_livequery.dart';
part 'src/network/parse_live_query.dart';

part 'src/network/parse_query.dart';

part 'src/objects/parse_base.dart';

part 'src/objects/parse_clonable.dart';
part 'src/objects/parse_cloneable.dart';

part 'src/objects/parse_config.dart';

Expand Down Expand Up @@ -58,11 +58,11 @@ part 'src/utils/parse_utils.dart';

class Parse {
ParseCoreData data;
bool _hasBeenInitialised = false;
bool _hasBeenInitialized = false;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is American English vs British - I'm happy either way to be fair.


/// To initialise Parse Server in your application
/// To initialize Parse Server in your application
///
/// This should be initialised in MyApp() creation
/// This should be initialized in MyApp() creation
///
/// ```
/// Parse().initialize(
Expand Down Expand Up @@ -91,26 +91,31 @@ class Parse {

ParseCoreData().initStorage();

_hasBeenInitialised = true;
_hasBeenInitialized = true;

return Parse();
}

bool hasParseBeenInitialised() => _hasBeenInitialised;
bool hasParseBeenInitialized() => _hasBeenInitialized;

Future<ParseResponse> healthCheck() async {
Future<ParseResponse> healthCheck(
{bool debug, ParseHTTPClient client}) async {
ParseResponse parseResponse;

bool _debug = isDebugEnabled(objectLevelDebug: debug);
ParseHTTPClient _client =
client ?? ParseHTTPClient(ParseCoreData().securityContext);

try {
var response = await ParseHTTPClient(ParseCoreData().securityContext)
.get("${ParseCoreData().serverUrl}$keyEndPointHealth");
var response =
await _client.get("${ParseCoreData().serverUrl}$keyEndPointHealth");
parseResponse =
ParseResponse.handleResponse(this, response, returnAsResult: true);
} on Exception catch (e) {
parseResponse = ParseResponse.handleException(e);
}

if (ParseCoreData().debug) {
if (_debug) {
logger(ParseCoreData().appName, keyClassMain,
ParseApiRQ.healthCheck.toString(), parseResponse);
}
Expand Down
24 changes: 12 additions & 12 deletions lib/src/network/parse_query.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ class QueryBuilder<T extends ParseObject> {
limiters['where'] = where;
}

/// Orders the results ascedingly.
/// Sorts the results in ascending order.
///
/// [String] order will be the column of the table that the results are
/// ordered by
void orderByAscending(String order) {
limiters["order"] = order;
}

/// Orders the results descendingly.
/// Sorts the results descending order.
///
/// [String] order will be the column of the table that the results are
/// ordered by
Expand All @@ -48,12 +48,12 @@ class QueryBuilder<T extends ParseObject> {
/// [String] keys will only return the columns of a result you want the data for,
/// this is useful for large objects
void keysToReturn(List<String> keys) {
limiters["keys"] = concatArray(keys);
limiters["keys"] = concatenateArray(keys);
}

/// Includes other ParseObjects stored as a Pointer
void includeObject(List<String> objectTypes) {
limiters["include"] = concatArray(objectTypes);
limiters["include"] = concatenateArray(objectTypes);
}

/// Returns an object where the [String] column starts with [value]
Expand Down Expand Up @@ -131,7 +131,7 @@ class QueryBuilder<T extends ParseObject> {
MapEntry(column, value), "\$nin"));
}

/// Returns an object where the [String] column for the object has data correctley entered/saved
/// Returns an object where the [String] column for the object has data correctly entered/saved
void whereValueExists(String column, bool value) {
queries.add(_buildQueryWithColumnValueAndOperator(
MapEntry(column, value), "\$exists"));
Expand Down Expand Up @@ -211,7 +211,7 @@ class QueryBuilder<T extends ParseObject> {
return queryBuilder;
}

String concatArray(List<String> queries) {
String concatenateArray(List<String> queries) {
String queryBuilder = "";

for (var item in queries) {
Expand Down Expand Up @@ -252,17 +252,17 @@ class QueryBuilder<T extends ParseObject> {
/// This joins queries that should be joined together... e.g. age > 10 &&
/// age < 20, this would be similar to age > 10 < 20
List _checkForMultipleColumnInstances(List<MapEntry> queries) {
List<MapEntry> sanitisedQueries = List();
List<MapEntry> sanitizedQueries = List();
List<String> keysAlreadyCompacted = List();

// Run through each query
for (var query in queries) {
// Add queries that don't need sanitising
// Add queries that don't need sanitizing
if (query.key == _NO_OPERATOR_NEEDED || query.key == _SINGLE_QUERY) {
sanitisedQueries.add(MapEntry(_NO_OPERATOR_NEEDED, query.value));
sanitizedQueries.add(MapEntry(_NO_OPERATOR_NEEDED, query.value));
}

// Check if query with same column name has been sanitised
// Check if query with same column name has been sanitized
if (!keysAlreadyCompacted.contains(query.key) &&
query.key != _NO_OPERATOR_NEEDED &&
query.key != _SINGLE_QUERY) {
Expand Down Expand Up @@ -290,11 +290,11 @@ class QueryBuilder<T extends ParseObject> {
}
}

sanitisedQueries.add(MapEntry(query.key, queryStart += "{$queryEnd}"));
sanitizedQueries.add(MapEntry(query.key, queryStart += "{$queryEnd}"));
}
}

return sanitisedQueries;
return sanitizedQueries;
}

/// Adds the limiters to the query, i.e. skip=10, limit=10
Expand Down
6 changes: 2 additions & 4 deletions lib/src/objects/parse_config.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
part of flutter_parse_sdk;

class ParseConfig extends ParseObject {
var _client = ParseHTTPClient(ParseCoreData().securityContext);

/// Creates an instance of ParseConfig so that you can grab all configs from the server
ParseConfig({bool debug, ParseHTTPClient client}) : super('config') {
if (debug != null) setDebug(debug);
if (client != null) setClient(client);
_debug = isDebugEnabled(objectLevelDebug: debug);
_client = client ?? ParseHTTPClient(ParseCoreData().securityContext);
}

/// Gets all configs from the server
Expand Down
4 changes: 2 additions & 2 deletions lib/src/objects/parse_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class ParseError {
204: 'EmailMissing',
205: 'EmailNotFound',
206: 'SessionMissing',
207: 'MustCreateUserThroughSignup',
207: 'MustCreateUserThroughSignUp',
208: 'AccountAlreadyLinked',
209: 'InvalidSessionToken',
250: 'LinkedIdMissing',
Expand All @@ -63,7 +63,7 @@ class ParseError {

ParseError(
{this.code = -1,
this.message = "Unkown error",
this.message = "Unknown error",
this.isTypeOfException = false,
bool debug: false}) {
type = exceptions[code];
Expand Down
60 changes: 24 additions & 36 deletions lib/src/objects/parse_file.dart
Original file line number Diff line number Diff line change
@@ -1,83 +1,71 @@
part of flutter_parse_sdk;

class ParseFile extends ParseObject {
File _file;
String _fileName;
String _fileUrl;
File file;
String name;
String url;

@override
String _path;

String get name => _fileName;

String get url => _fileUrl;

File get file => _file;

set url(String url) => _fileUrl = url;

set name(String name) => _fileName = name;

bool get saved => url != null;

@override
toJson({bool forApiRQ: false}) =>
<String, String>{'__type': keyFile, 'name': _fileName, 'url': _fileUrl};
<String, String>{'__type': keyFile, 'name': name, 'url': url};

@override
String toString() => json.encode(toString());

/// Creates a new file
///
/// {https://docs.parseplatform.org/rest/guide/#files/}
ParseFile(this._file,
ParseFile(this.file,
{String name, String url, bool debug, ParseHTTPClient client})
: super(keyFile) {
client == null
? _client = ParseHTTPClient(ParseCoreData().securityContext)
: _client = client;

_debug = isDebugEnabled(objectLevelDebug: debug);
if (_file != null) {
this._fileName = path.basename(_file.path);
this._path = 'files/$_fileName';
_client = client ?? ParseHTTPClient(ParseCoreData().securityContext);

if (file != null) {
this.name = path.basename(file.path);
this._path = 'files/$name';
} else {
this._fileName = name;
this._fileUrl = url;
this.name = name;
this.url = url;
}
}

Future<ParseFile> loadStorage() async {
Directory tempPath = await getTemporaryDirectory();

if (_fileName == null) {
_file = null;
if (name == null) {
file = null;
return this;
}

File possibleFile = new File("${tempPath.path}/$_fileName");
File possibleFile = new File("${tempPath.path}/$name");
bool exists = await possibleFile.exists();

if (exists) {
_file = possibleFile;
file = possibleFile;
} else {
_file = null;
file = null;
}

return this;
}

Future<ParseFile> download() async {
if (_fileUrl == null) {
if (url == null) {
return this;
}

Directory tempPath = await getTemporaryDirectory();
this._file = new File("${tempPath.path}/$_fileName");
await _file.create();
this.file = new File("${tempPath.path}/$name");
await file.create();

var response = await _client.get(_fileUrl);
_file.writeAsBytes(response.bodyBytes);
var response = await _client.get(url);
file.writeAsBytes(response.bodyBytes);

return this;
}
Expand All @@ -88,13 +76,13 @@ class ParseFile extends ParseObject {
return this;
}

final ext = path.extension(_file.path).replaceAll('.', '');
final ext = path.extension(file.path).replaceAll('.', '');
final headers = <String, String>{
HttpHeaders.contentTypeHeader: getContentType(ext)
};

var uri = _client.data.serverUrl + "$_path";
final body = await _file.readAsBytes();
final body = await file.readAsBytes();
final response = await _client.post(uri, headers: headers, body: body);
return handleResponse<ParseFile>(
this, response, ParseApiRQ.upload, _debug, className);
Expand Down
4 changes: 2 additions & 2 deletions lib/src/objects/parse_function.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class ParseCloudFunction extends ParseObject {
: super(functionName) {
_path = "/functions/$functionName";

if (debug != null) setDebug(debug);
if (client != null) setClient(client);
_debug = isDebugEnabled(objectLevelDebug: debug);
_client = client ?? ParseHTTPClient(ParseCoreData().securityContext);
}

/// Executes a cloud function
Expand Down
6 changes: 2 additions & 4 deletions lib/src/objects/parse_geo_point.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ class ParseGeoPoint extends ParseObject {
_latitude = latitude;
_longitude = longitude;

client == null
? _client = ParseHTTPClient(ParseCoreData().securityContext)
: _client = client;
_debug = isDebugEnabled(objectLevelDebug: debug);
_client = client ?? ParseHTTPClient(ParseCoreData().securityContext);
}

double get latitude => _latitude;
Expand All @@ -33,4 +31,4 @@ class ParseGeoPoint extends ParseObject {
assert(value >= -180.0 || value <= 180.0);
_longitude = value;
}
}
}
15 changes: 4 additions & 11 deletions lib/src/objects/parse_object.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
part of flutter_parse_sdk;

class ParseObject extends ParseBase implements ParseCloneable {

ParseObject.clone(String className) : this(className);

@override
Expand All @@ -16,19 +15,13 @@ class ParseObject extends ParseBase implements ParseCloneable {
/// [String] className refers to the Table Name in your Parse Server,
/// [bool] debug will overwrite the current default debug settings and
/// [ParseHttpClient] can be overwritten to create your own HTTP Client
ParseObject(String className, {bool debug: false}) : super() {
ParseObject(String className, {bool debug: false, ParseHTTPClient client})
: super() {
setClassName(className);
_path = "$keyEndPointClasses$className";
setClient(ParseHTTPClient(ParseCoreData().securityContext));
setDebug(isDebugEnabled(objectLevelDebug: debug));
}

void setDebug(bool debug) {
_debug = debug;
}

void setClient(ParseHTTPClient client) {
_client = client;
_debug = isDebugEnabled(objectLevelDebug: debug);
_client = client ?? ParseHTTPClient(ParseCoreData().securityContext);
}

String toPointer() => parseEncode(this);
Expand Down
Loading