diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 90f6bf29b2de7acc454b6fdefd60505ef1e5db7d..7d9f6af4797da3aa6540b7792daccf37c232f2d2 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,12 +2,11 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="8debb13c-dec3-4d96-b552-5550bc63772b" name="Default" comment=""> - <change afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/Select/Entry.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/Entry.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Select/EntryValues.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/EntryValues.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> @@ -20,14 +19,14 @@ <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath> </component> <component name="FileEditorManager"> - <splitter split-orientation="horizontal" split-proportion="0.5078864"> + <splitter split-orientation="horizontal" split-proportion="0.6553628"> <split-first> <leaf> <file leaf-file-name="FeatureContainer.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="609"> - <caret line="70" column="29" lean-forward="true" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> + <caret line="70" column="29" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> <folding> <element signature="e#57#99#0#PHP" expanded="true" /> </folding> @@ -39,7 +38,7 @@ <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="576"> - <caret line="60" lean-forward="true" selection-start-line="60" selection-end-line="60" /> + <caret line="60" selection-start-line="60" selection-end-line="60" /> </state> </provider> </entry> @@ -47,35 +46,17 @@ <file leaf-file-name="EntryValues.php" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="397"> - <caret line="59" column="22" selection-start-line="59" selection-start-column="22" selection-end-line="59" selection-end-column="22" /> + <state relative-caret-position="120"> + <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> </state> </provider> </entry> </file> - <file leaf-file-name="DoesSelectQuery.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> + <file leaf-file-name="ValueSelectQueryBuilder.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="105"> - <caret line="7" column="25" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="25" /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="SelectQueryBuilder.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="663"> - <caret line="59" column="91" lean-forward="true" selection-start-line="59" selection-start-column="91" selection-end-line="59" selection-end-column="91" /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="DoesSelectQueryByValue.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="150"> - <caret line="10" column="32" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="32" /> + <state relative-caret-position="450"> + <caret line="30" column="24" lean-forward="true" selection-end-line="47" /> </state> </provider> </entry> @@ -83,8 +64,8 @@ <file leaf-file-name="Entry.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="23"> - <caret line="9" column="33" lean-forward="true" selection-start-line="9" selection-start-column="33" selection-end-line="9" selection-end-column="33" /> + <state relative-caret-position="345"> + <caret line="23" selection-start-line="23" selection-end-line="23" /> </state> </provider> </entry> @@ -130,6 +111,9 @@ <option value="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" /> <option value="$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php" /> <option value="$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php" /> + <option value="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" /> + <option value="$PROJECT_DIR$/src/Select/Entry.php" /> + <option value="$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php" /> <option value="$PROJECT_DIR$/src/Select/EntryValues.php" /> </list> </option> @@ -142,6 +126,9 @@ <detection-done>true</detection-done> <sorting>DEFINITION_ORDER</sorting> </component> + <component name="NodeModulesDirectoryManager"> + <handled-path value="$PROJECT_DIR$/node_modules" /> + </component> <component name="NodePackageJsonFileManager"> <packageJsonPaths> <path value="$PROJECT_DIR$/Tests/plugins/caldera-forms/includes/freemius/package.json" /> @@ -270,12 +257,12 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1526182556614</updated> - <workItem from="1526182558454" duration="2632000" /> + <workItem from="1526182558454" duration="3014000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="2632000" /> + <option name="totallyTimeSpent" value="3014000" /> </component> <component name="ToolWindowManager"> <frame x="260" y="43" width="1660" height="937" extended-state="0" /> @@ -284,7 +271,7 @@ <window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="Event Log" side_tool="true" /> <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" /> - <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Run" order="2" weight="0.3297619" /> <window_info anchor="bottom" id="Version Control" /> <window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.14761905" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21631645" /> @@ -348,7 +335,7 @@ <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="609"> - <caret line="70" column="29" lean-forward="true" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> + <caret line="70" column="29" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> <folding> <element signature="e#57#99#0#PHP" expanded="true" /> </folding> @@ -358,49 +345,56 @@ <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="576"> - <caret line="60" lean-forward="true" selection-start-line="60" selection-end-line="60" /> + <caret line="60" selection-start-line="60" selection-end-line="60" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="23"> - <caret line="9" column="33" lean-forward="true" selection-start-line="9" selection-start-column="33" selection-end-line="9" selection-end-column="33" /> + <state relative-caret-position="390"> + <caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="210"> + <caret line="14" column="7" lean-forward="true" selection-start-line="14" selection-start-column="7" selection-end-line="14" selection-end-column="7" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="150"> - <caret line="10" column="32" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="32" /> + <caret line="10" column="10" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="10" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="663"> - <caret line="59" column="91" lean-forward="true" selection-start-line="59" selection-start-column="91" selection-end-line="59" selection-end-column="91" /> + <state relative-caret-position="450"> + <caret line="31" column="5" lean-forward="true" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> + <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="105"> - <caret line="7" column="25" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="25" /> + <state relative-caret-position="345"> + <caret line="23" selection-start-line="23" selection-end-line="23" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> + <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="390"> - <caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" /> + <state relative-caret-position="450"> + <caret line="30" column="24" lean-forward="true" selection-end-line="47" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="397"> - <caret line="59" column="22" selection-start-line="59" selection-start-column="22" selection-end-line="59" selection-end-column="22" /> + <state relative-caret-position="120"> + <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> </state> </provider> </entry> diff --git a/src/Select/Entry.php b/src/Select/Entry.php index 4ececde6ec6d8520f463e409d76415b3baa82edd..df8b1069908f9b1ae843d333c60d74244b047596 100644 --- a/src/Select/Entry.php +++ b/src/Select/Entry.php @@ -22,17 +22,6 @@ class Entry extends SelectQueryBuilder return $this->is('form_id', $formId); } - /** - * Get entry by ID - * - * @param int $entryId Entry ID - * @return $this - */ - public function queryByEntryId($entryId) - { - return $this->is('id', $entryId); - } - /** * Query by entry ids * @@ -55,4 +44,10 @@ class Entry extends SelectQueryBuilder { return $this->is('user_id', $userId); } + + /** @inheritdoc */ + public function getEntryIdColumn() + { + return 'id'; + } } diff --git a/src/Select/EntryValues.php b/src/Select/EntryValues.php index 99c0ffc1f787dbafaafe869a9999ac06bdb36e04..d04d95d4591cb63802bad972d1acdff38e41b2a4 100644 --- a/src/Select/EntryValues.php +++ b/src/Select/EntryValues.php @@ -3,60 +3,14 @@ namespace calderawp\CalderaFormsQuery\Select; -class EntryValues extends SelectQueryBuilder implements DoesSelectQueryByValue, DoesSelectQueryByEntryId +/** + * Class EntryValues + * + * Performs select queries for entry values + */ +class EntryValues extends ValueSelectQueryBuilder { - - /** @inheritdoc */ - public function queryByEntryId($entryId) - { - $this - ->getSelectQuery() - ->where() - ->equals($this->getEntryIdColumn(), $entryId) - ; - return $this; - } - - /** @inheritdoc */ - public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = []) - { - if (! empty($columns)) { - $this - ->getSelectQuery() - ->setColumns($columns); - } - switch ($type) { - case 'equals': - $this - ->getSelectQuery() - ->where($whereOperator) - ->equals($this->getValueColumn(), $fieldValue) - ; - break; - case 'notEquals': - $this-> - getSelectQuery() - ->where($whereOperator) - ->notEquals($this->getValueColumn(), $fieldValue); - break; - case 'like': - $this-> - getSelectQuery() - ->where($whereOperator) - ->like($this->getValueColumn(), $fieldValue); - break; - } - - $this->isLike = 'like' === $type ? true : false; - - if (!$this->isLike) { - $this->getSelectQuery()->where('AND')->equals('slug', $fieldSlug); - } - - return $this; - } - /** @inheritdoc */ public function getValueColumn() { diff --git a/src/Select/SelectQueryBuilder.php b/src/Select/SelectQueryBuilder.php index b4a50284c73c73c8cbff1d88f103b3cd5e8f6ff2..c774823c99647e82c132873f003adb565ddc10e1 100644 --- a/src/Select/SelectQueryBuilder.php +++ b/src/Select/SelectQueryBuilder.php @@ -6,7 +6,7 @@ namespace calderawp\CalderaFormsQuery\Select; use calderawp\CalderaFormsQuery\QueryBuilder; use NilPortugues\Sql\QueryBuilder\Manipulation\Select; -abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuery +abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuery, DoesSelectQueryByEntryId { /** @@ -24,12 +24,11 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer return $this->selectQuery; } - /** - * @return Select - */ - protected function getCurrentQuery() + /** @inheritdoc */ + public function queryByEntryId($entryId) { - return $this->getSelectQuery(); + return $this->is($this->getEntryIdColumn(), $entryId); + } /** @@ -44,6 +43,14 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer return $this; } + /** + * @return Select + */ + protected function getCurrentQuery() + { + return $this->getSelectQuery(); + } + /** @inheritdoc */ public function resetQuery() diff --git a/src/Select/ValueSelectQueryBuilder.php b/src/Select/ValueSelectQueryBuilder.php new file mode 100644 index 0000000000000000000000000000000000000000..4b6e176ac64398c426633590ef2c1397108aa8a8 --- /dev/null +++ b/src/Select/ValueSelectQueryBuilder.php @@ -0,0 +1,47 @@ +<?php + + +namespace calderawp\CalderaFormsQuery\Select; + + +abstract class ValueSelectQueryBuilder extends SelectQueryBuilder implements DoesSelectQueryByValue +{ + + /** @inheritdoc */ + public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = []) + { + if (!empty($columns)) { + $this + ->getSelectQuery() + ->setColumns($columns); + } + switch ($type) { + case 'equals': + $this + ->getSelectQuery() + ->where($whereOperator) + ->equals($this->getValueColumn(), $fieldValue); + break; + case 'notEquals': + $this-> + getSelectQuery() + ->where($whereOperator) + ->notEquals($this->getValueColumn(), $fieldValue); + break; + case 'like': + $this-> + getSelectQuery() + ->where($whereOperator) + ->like($this->getValueColumn(), $fieldValue); + break; + } + + $this->isLike = 'like' === $type ? true : false; + + if (!$this->isLike) { + $this->getSelectQuery()->where('AND')->equals('slug', $fieldSlug); + } + + return $this; + } +}