Skip to content
Snippets Groups Projects
Commit 9fa2016d authored by Josh Pollock's avatar Josh Pollock
Browse files

further abstract select queries

parent 13509bcb
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
......@@ -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';
}
}
......@@ -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()
{
......
......@@ -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()
......
<?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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment