diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ff7b747ba..6bdc9e8f1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -16,7 +16,9 @@ <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/example/lib/application_constants.dart" beforeDir="false" afterPath="$PROJECT_DIR$/example/lib/application_constants.dart" afterDir="false" /> <change beforePath="$PROJECT_DIR$/example/lib/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/example/lib/main.dart" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/lib/src/objects/parse_response.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/objects/parse_response.dart" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/lib/src/network/parse_query.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/network/parse_query.dart" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/lib/src/objects/parse_object.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/objects/parse_object.dart" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/lib/src/objects/parse_user.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/src/objects/parse_user.dart" afterDir="false" /> <change beforePath="$PROJECT_DIR$/pubspec.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pubspec.yaml" afterDir="false" /> </list> <ignored path="$PROJECT_DIR$/out/" /> @@ -77,74 +79,75 @@ <usages-collector id="statistics.lifecycle.project"> <counts> <entry key="project.closed" value="3" /> - <entry key="project.open.time.14" value="4" /> + <entry key="project.open.time.14" value="5" /> <entry key="project.open.time.15" value="1" /> - <entry key="project.open.time.16" value="1" /> + <entry key="project.open.time.16" value="2" /> <entry key="project.open.time.28" value="1" /> - <entry key="project.opened" value="7" /> + <entry key="project.opened" value="9" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.edit"> <counts> - <entry key="dart" value="3963" /> + <entry key="dart" value="4319" /> <entry key="txt" value="236" /> - <entry key="yaml" value="2" /> + <entry key="yaml" value="3" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.edit"> <counts> - <entry key="Dart" value="3963" /> + <entry key="Dart" value="4319" /> <entry key="PLAIN_TEXT" value="236" /> - <entry key="YAML" value="2" /> + <entry key="YAML" value="3" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.open"> <counts> - <entry key="dart" value="50" /> - <entry key="yaml" value="7" /> + <entry key="dart" value="62" /> + <entry key="yaml" value="9" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.open"> <counts> - <entry key="Dart" value="50" /> - <entry key="YAML" value="7" /> + <entry key="Dart" value="62" /> + <entry key="YAML" value="9" /> </counts> </usages-collector> <usages-collector id="statistics.vcs.git.usages"> <counts> + <entry key="git.branch.checkout.local" value="1" /> <entry key="git.branch.create.new" value="2" /> </counts> </usages-collector> </session> </component> <component name="FileEditorManager"> - <leaf> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_response.dart"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/example/lib/main.dart"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="204"> - <caret line="35" column="5" lean-forward="true" selection-start-line="35" selection-start-column="5" selection-end-line="35" selection-end-column="5" /> + <state relative-caret-position="297"> + <caret line="128" column="20" selection-start-line="128" selection-start-column="20" selection-end-line="128" selection-end-column="20" /> + <folding> + <element signature="e#0#39#0" expanded="true" /> + </folding> </state> </provider> </entry> </file> - <file pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/pubspec.yaml"> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_object.dart"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="34"> - <caret line="2" column="14" selection-start-line="2" selection-start-column="14" selection-end-line="2" selection-end-column="14" /> + <state relative-caret-position="143"> + <caret line="182" column="13" selection-start-line="182" selection-start-column="13" selection-end-line="182" selection-end-column="13" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/example/lib/main.dart"> + <entry file="file://$PROJECT_DIR$/lib/src/network/parse_query.dart"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="408"> - <caret line="171" column="56" selection-start-line="171" selection-start-column="56" selection-end-line="171" selection-end-column="56" /> - <folding> - <element signature="e#0#39#0" expanded="true" /> - </folding> + <state relative-caret-position="185"> + <caret line="174" column="19" selection-start-line="174" selection-start-column="19" selection-end-line="174" selection-end-column="19" /> </state> </provider> </entry> @@ -153,8 +156,6 @@ </component> <component name="FindInProjectRecents"> <findStrings> - <find>import</find> - <find>BaseClient</find> <find>bad</find> <find>client</find> <find>send</find> @@ -183,6 +184,8 @@ <find>term</find> <find>query</find> <find>save(</find> + <find>keys</find> + <find>List<</find> </findStrings> <replaceStrings> <replace>part</replace> @@ -196,7 +199,7 @@ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_BRANCH_BY_REPOSITORY"> <map> - <entry key="$PROJECT_DIR$" value="release/1.0.6" /> + <entry key="$PROJECT_DIR$" value="release/1.0.7" /> </map> </option> </component> @@ -237,8 +240,6 @@ <option value="$PROJECT_DIR$/example/lib/application_constants.dart" /> <option value="$PROJECT_DIR$/lib/src/data/parse_core_data.dart" /> <option value="$PROJECT_DIR$/lib/src/objects/parse_base.dart" /> - <option value="$PROJECT_DIR$/lib/src/objects/parse_user.dart" /> - <option value="$PROJECT_DIR$/lib/src/network/parse_query.dart" /> <option value="$PROJECT_DIR$/lib/src/utils/parse_mime_types.dart" /> <option value="$PROJECT_DIR$/lib/src/utils/parse_file_extensions.dart" /> <option value="$PROJECT_DIR$/lib/src/base/parse_constants.dart" /> @@ -249,18 +250,20 @@ <option value="$PROJECT_DIR$/lib/src/utils/parse_encoder.dart" /> <option value="$PROJECT_DIR$/lib/parse.dart" /> <option value="$PROJECT_DIR$/lib/src/enums/parse_enum_api_rq.dart" /> - <option value="$PROJECT_DIR$/lib/src/objects/parse_object.dart" /> - <option value="$PROJECT_DIR$/example/lib/main.dart" /> <option value="$PROJECT_DIR$/lib/src/objects/parse_response.dart" /> <option value="$PROJECT_DIR$/pubspec.yaml" /> + <option value="$PROJECT_DIR$/lib/src/objects/parse_user.dart" /> + <option value="$PROJECT_DIR$/lib/src/objects/parse_object.dart" /> + <option value="$PROJECT_DIR$/lib/src/network/parse_query.dart" /> + <option value="$PROJECT_DIR$/example/lib/main.dart" /> </list> </option> </component> <component name="ProjectFrameBounds"> - <option name="x" value="-7" /> - <option name="y" value="2" /> - <option name="width" value="1577" /> - <option name="height" value="1042" /> + <option name="x" value="-8" /> + <option name="y" value="13" /> + <option name="width" value="1573" /> + <option name="height" value="1032" /> </component> <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectView"> @@ -268,8 +271,8 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> - <pane id="PackagesPane" /> <pane id="Scope" /> + <pane id="PackagesPane" /> <pane id="ProjectPane"> <subPane> <expand> @@ -282,18 +285,6 @@ <item name="flutter_parse_sdk" type="462c0819:PsiDirectoryNode" /> <item name="example" type="462c0819:PsiDirectoryNode" /> </path> - <path> - <item name="flutter_parse_sdk" type="b2602c69:ProjectViewProjectNode" /> - <item name="flutter_parse_sdk" type="462c0819:PsiDirectoryNode" /> - <item name="example" type="462c0819:PsiDirectoryNode" /> - <item name="ios" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="flutter_parse_sdk" type="b2602c69:ProjectViewProjectNode" /> - <item name="flutter_parse_sdk" type="462c0819:PsiDirectoryNode" /> - <item name="example" type="462c0819:PsiDirectoryNode" /> - <item name="lib" type="462c0819:PsiDirectoryNode" /> - </path> <path> <item name="flutter_parse_sdk" type="b2602c69:ProjectViewProjectNode" /> <item name="flutter_parse_sdk" type="462c0819:PsiDirectoryNode" /> @@ -579,7 +570,14 @@ <option name="project" value="LOCAL" /> <updated>1547895940859</updated> </task> - <option name="localTasksCounter" value="19" /> + <task id="LOCAL-00019" summary="Version 1.0.7 - Some items now return"> + <created>1547896458167</created> + <option name="number" value="00019" /> + <option name="presentableId" value="LOCAL-00019" /> + <option name="project" value="LOCAL" /> + <updated>1547896458167</updated> + </task> + <option name="localTasksCounter" value="20" /> <servers /> </component> <component name="TodoView"> @@ -592,10 +590,9 @@ </todo-panel> </component> <component name="ToolWindowManager"> - <frame x="-7" y="2" width="1577" height="1042" extended-state="0" /> - <editor active="true" /> + <frame x="-8" y="13" width="1573" height="1032" extended-state="0" /> <layout> - <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.19644034" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.20356907" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Designer" order="2" /> <window_info id="Favorites" order="3" side_tool="true" /> @@ -605,19 +602,19 @@ <window_info id="Capture Tool" order="7" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49898854" weight="0.32785088" /> - <window_info anchor="bottom" id="Run" order="2" sideWeight="0.6601483" weight="0.4129956" /> - <window_info anchor="bottom" id="Debug" order="3" sideWeight="0.7134187" weight="0.31886476" /> + <window_info anchor="bottom" id="Run" order="2" sideWeight="0.6601483" weight="0.41091314" /> + <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.7134187" visible="true" weight="0.31514478" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49898854" weight="0.32785088" /> - <window_info anchor="bottom" id="Dart Analysis" order="7" sideWeight="0.4962913" visible="true" weight="0.32599118" /> + <window_info anchor="bottom" id="Dart Analysis" order="7" sideWeight="0.4962913" weight="0.32436976" /> <window_info anchor="bottom" id="Logcat" order="8" sideWeight="0.49905124" weight="0.5562914" /> <window_info anchor="bottom" id="Android Profiler" order="9" show_stripe_button="false" /> <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.33985165" side_tool="true" weight="0.41557017" /> <window_info anchor="bottom" id="Flutter Performance" order="11" side_tool="true" /> <window_info anchor="bottom" id="Version Control" order="12" sideWeight="0.49308175" weight="0.32554257" /> - <window_info anchor="bottom" id="Terminal" order="13" sideWeight="0.49566475" weight="0.32378855" /> - <window_info anchor="bottom" id="Messages" order="14" sideWeight="0.49359408" weight="0.26211452" /> + <window_info anchor="bottom" id="Terminal" order="13" sideWeight="0.49566475" weight="0.3226891" /> + <window_info anchor="bottom" id="Messages" order="14" sideWeight="0.49359408" weight="0.26050422" /> <window_info anchor="right" id="Commander" order="0" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> @@ -686,35 +683,21 @@ <MESSAGE value="Version 1.0.6 - ParseUser now extends ParseObject - BREAKING FIX" /> <MESSAGE value="Version 1.0.6 - Log out function corrected/unpin issue corrected" /> <MESSAGE value="Version 1.0.6 - BREKAING FIX - changed query names" /> - <option name="LAST_COMMIT_MESSAGE" value="Version 1.0.6 - BREKAING FIX - changed query names" /> + <MESSAGE value="Version 1.0.7 - Some items now return" /> + <option name="LAST_COMMIT_MESSAGE" value="Version 1.0.7 - Some items now return" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> <breakpoints> <line-breakpoint enabled="true" type="Dart"> - <url>file://$PROJECT_DIR$/example/lib/main.dart</url> - <line>168</line> - <option name="timeStamp" value="103" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="Dart"> - <url>file://$PROJECT_DIR$/example/lib/main.dart</url> - <line>140</line> - <option name="timeStamp" value="104" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="Dart"> - <url>file://$PROJECT_DIR$/example/lib/main.dart</url> - <line>167</line> - <option name="timeStamp" value="106" /> + <url>file://$PROJECT_DIR$/lib/src/network/parse_query.dart</url> + <line>174</line> + <option name="timeStamp" value="121" /> </line-breakpoint> <line-breakpoint enabled="true" type="Dart"> <url>file://$PROJECT_DIR$/example/lib/main.dart</url> <line>128</line> - <option name="timeStamp" value="108" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="Dart"> - <url>file://$PROJECT_DIR$/example/lib/main.dart</url> - <line>126</line> - <option name="timeStamp" value="110" /> + <option name="timeStamp" value="123" /> </line-breakpoint> </breakpoints> <default-breakpoints> @@ -789,13 +772,6 @@ <entry file="file://$USER_HOME$/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/http.dart" /> <entry file="file://$USER_HOME$/development/flutter/bin/cache/dart-sdk/lib/convert/json.dart" /> <entry file="file://$USER_HOME$/development/flutter/bin/cache/pkg/sky_engine/lib/core/exceptions.dart" /> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_error.dart"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="82"> - <caret line="10" column="8" selection-start-line="10" selection-start-column="8" selection-end-line="10" selection-end-column="8" /> - </state> - </provider> - </entry> <entry file="file://C:/Programming/Flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/utils.dart"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-153"> @@ -929,9 +905,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/example/pubspec.yaml"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> <entry file="file://$PROJECT_DIR$/lib/src/utils/parse_utils.dart"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="153"> @@ -939,13 +912,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_geo_point.dart"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="221"> - <caret line="13" column="53" selection-start-line="13" selection-start-column="53" selection-end-line="13" selection-end-column="53" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/example/lib/diet_plan.dart"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="153"> @@ -960,13 +926,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_user.dart"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="391"> - <caret line="23" column="59" selection-start-line="23" selection-start-column="59" selection-end-line="23" selection-end-column="59" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_base.dart"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="353"> @@ -1009,13 +968,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/lib/src/network/parse_query.dart"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="193"> - <caret line="176" selection-start-line="176" selection-end-line="176" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/lib/src/enums/parse_enum_api_rq.dart"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="442"> @@ -1044,30 +996,20 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_object.dart"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2737"> - <caret line="224" column="13" selection-start-line="224" selection-start-column="13" selection-end-line="224" selection-end-column="13" /> - </state> - </provider> - </entry> <entry file="file://C:/Programming/Flutter/.pub-cache/hosted/pub.dartlang.org/path-1.6.2/lib/path.dart"> <provider selected="true" editor-type-id="text-editor" /> </entry> - <entry file="file://$PROJECT_DIR$/example/lib/main.dart"> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_error.dart"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="408"> - <caret line="171" column="56" selection-start-line="171" selection-start-column="56" selection-end-line="171" selection-end-column="56" /> - <folding> - <element signature="e#0#39#0" expanded="true" /> - </folding> + <state relative-caret-position="136"> + <caret line="50" column="24" selection-start-line="50" selection-start-column="24" selection-end-line="50" selection-end-column="24" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_response.dart"> + <entry file="file://$PROJECT_DIR$/example/pubspec.yaml"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="204"> - <caret line="35" column="5" lean-forward="true" selection-start-line="35" selection-start-column="5" selection-end-line="35" selection-end-column="5" /> + <state> + <caret column="28" lean-forward="true" selection-start-column="28" selection-end-column="28" /> </state> </provider> </entry> @@ -1078,6 +1020,51 @@ </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_geo_point.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="221"> + <caret line="13" column="53" selection-start-line="13" selection-start-column="53" selection-end-line="13" selection-end-column="53" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_response.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="102"> + <caret line="6" column="8" selection-start-line="6" selection-start-column="8" selection-end-line="6" selection-end-column="8" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_user.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="263"> + <caret line="104" selection-start-line="104" selection-end-line="104" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/lib/src/objects/parse_object.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="143"> + <caret line="182" column="13" selection-start-line="182" selection-start-column="13" selection-end-line="182" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/lib/src/network/parse_query.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="185"> + <caret line="174" column="19" selection-start-line="174" selection-start-column="19" selection-end-line="174" selection-end-column="19" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/example/lib/main.dart"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="297"> + <caret line="128" column="20" selection-start-line="128" selection-start-column="20" selection-end-line="128" selection-end-column="20" /> + <folding> + <element signature="e#0#39#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> </component> <component name="masterDetails"> <states> diff --git a/CHANGELOG.md b/CHANGELOG.md index ae22bd85b..ec415e748 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.0.8 +Fixed some queries + ## 1.0.7 Some items now return a response rather than a ParseObject diff --git a/README.md b/README.md index b4dba2a05..b9a44bfdf 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.7 + parse_server_sdk: ^1.0.8 ``` 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/example/lib/main.dart b/example/lib/main.dart index 8558aa208..bf418b237 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -51,13 +51,13 @@ class _MyAppState extends State<MyApp> { } runTestQueries() { - createItem(); - getAllItems(); - getAllItemsByName(); - getSingleItem(); + //createItem(); + //getAllItems(); + //getAllItemsByName(); + //getSingleItem(); query(); - function(); - initUser(); + //function(); + //initUser(); } void createItem() async { @@ -112,7 +112,6 @@ class _MyAppState extends State<MyApp> { // shows example of retrieving a pin var newDietPlanFromPin = DietPlan().fromPin('R5EonpUDWy'); - if (newDietPlanFromPin != null) print('Retreiving from pin worked!'); } else { @@ -122,7 +121,8 @@ class _MyAppState extends State<MyApp> { void query() async { var queryBuilder = QueryBuilder<DietPlan>(DietPlan()) - ..whereContains(DietPlan.keyName, "eto"); + ..whereContains(DietPlan.keyName, "iet") + ..keysToReturn([DietPlan.keyName]); var apiResponse = await queryBuilder.query(); diff --git a/lib/src/network/parse_query.dart b/lib/src/network/parse_query.dart index 6473951d7..35f7163ed 100644 --- a/lib/src/network/parse_query.dart +++ b/lib/src/network/parse_query.dart @@ -49,12 +49,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"] = keys.toString(); + limiters["keys"] = concatArray(keys); } /// Includes other ParseObjects stored as a Pointer - void includeObject(String objectType){ - limiters["include"] = objectType; + void includeObject(List<String> objectTypes){ + limiters["include"] = concatArray(objectTypes); } /// Returns an object where the [String] column starts with [value] @@ -148,15 +148,15 @@ class QueryBuilder<T extends ParseObject> { /// Performs a search to see if [String] contains other string void whereContains(String column, String value, {bool caseSensitive: false}) { if (caseSensitive) { - queries.add(MapEntry(_SINGLE_QUERY, '\"$column\":{\"\$regex\": \"$query\"}')); + queries.add(MapEntry(_SINGLE_QUERY, '\"$column\":{\"\$regex\": \"$value\"}')); } else { - queries.add(MapEntry(_SINGLE_QUERY, '\"$column\":{\"\$regex\": \"$query\", \"\$options\": \"i\"}')); + queries.add(MapEntry(_SINGLE_QUERY, '\"$column\":{\"\$regex\": \"$value\", \"\$options\": \"i\"}')); } } /// Powerful search for containing whole words. This search is much quicker than regex and can search for whole words including wether they are case sensitive or not. /// This search can also order by the score of the search - void textContainsWholeWord(String column, String query, {bool caseSensitive: false, bool orderByScore: true}){ + void whereContainsWholeWord(String column, String query, {bool caseSensitive: false, bool orderByScore: true}){ queries.add(MapEntry(_SINGLE_QUERY, '\"$column\":{\"\$text\":{\"\$search\":{\"\$term\": \"$query\", \"\$caseSensitive\": $caseSensitive }}}')); if (orderByScore) orderByDescending('score'); } @@ -177,7 +177,6 @@ class QueryBuilder<T extends ParseObject> { /// Runs through all queries and adds them to a query string String buildQueries(List<MapEntry> queries) { - String queryBuilder = ""; for (var item in queries) { @@ -191,6 +190,20 @@ class QueryBuilder<T extends ParseObject> { return queryBuilder; } + String concatArray(List<String> queries) { + String queryBuilder = ""; + + for (var item in queries) { + if (item == queries.first) { + queryBuilder += item; + } else { + queryBuilder += ",$item"; + } + } + + return queryBuilder; + } + /// Creates a query param using the column, the value and the queryOperator /// that the column and value are being queried against MapEntry _buildQueryWithColumnValueAndOperator(MapEntry columnAndValue, String queryOperator) { diff --git a/lib/src/objects/parse_object.dart b/lib/src/objects/parse_object.dart index 11293f99d..6ee661d25 100644 --- a/lib/src/objects/parse_object.dart +++ b/lib/src/objects/parse_object.dart @@ -170,8 +170,16 @@ class ParseObject extends ParseBase implements ParseCloneable { /// Can be used to create custom queries Future<ParseResponse> query(String query) async { try { - var uri = "${ParseCoreData().serverUrl}$_path?$query"; - var result = await _client.get(uri); + + Uri tempUri = Uri.parse(ParseCoreData().serverUrl); + + Uri url = Uri( + scheme: tempUri.scheme, + host: tempUri.host, + path: "${tempUri.path}$_path", + query: query); + + var result = await _client.get(url); return handleResponse(result, ParseApiRQ.query); } on Exception catch (e) { return handleException(e, ParseApiRQ.query); diff --git a/lib/src/objects/parse_user.dart b/lib/src/objects/parse_user.dart index 63d983347..69e921443 100644 --- a/lib/src/objects/parse_user.dart +++ b/lib/src/objects/parse_user.dart @@ -74,8 +74,7 @@ class ParseUser extends ParseObject implements ParseCloneable { host: tempUri.host, path: "${tempUri.path}$keyEndPointUserName"); - final response = await _client - .get(uri, headers: {keyHeaderSessionToken: _client.data.sessionId}); + final response = await _client.get(uri, headers: {keyHeaderSessionToken: _client.data.sessionId}); return _handleResponse(response, ParseApiRQ.currentUser); } on Exception catch (e) { return _handleException(e, ParseApiRQ.currentUser); diff --git a/pubspec.yaml b/pubspec.yaml index 0d2fdab72..53dbe4721 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.7 +version: 1.0.8 homepage: https://github.com/phillwiggins/flutter_parse_sdk author: PhillWiggins <phill.wiggins@gmail.com>