djmaze 2020-12-10 15:50:05 +01:00
parent 324c7121cc
commit b09c5d586c
3 changed files with 17 additions and 32 deletions

View file

@ -58,7 +58,7 @@ trait Filters
$aFilters = array(); $aFilters = array();
foreach ($aIncFilters as $aFilter) foreach ($aIncFilters as $aFilter)
{ {
if (is_array($aFilter)) if (\is_array($aFilter))
{ {
$oFilter = new \RainLoop\Providers\Filters\Classes\Filter(); $oFilter = new \RainLoop\Providers\Filters\Classes\Filter();
if ($oFilter->FromJSON($aFilter)) if ($oFilter->FromJSON($aFilter))

View file

@ -199,10 +199,9 @@ class Filter implements \JsonSerializable
$this->bStop = isset($aFilter['Stop']) ? '1' === (string) $aFilter['Stop'] : true; $this->bStop = isset($aFilter['Stop']) ? '1' === (string) $aFilter['Stop'] : true;
$this->bMarkAsRead = isset($aFilter['MarkAsRead']) ? '1' === (string) $aFilter['MarkAsRead'] : false; $this->bMarkAsRead = isset($aFilter['MarkAsRead']) ? '1' === (string) $aFilter['MarkAsRead'] : false;
$this->aConditions = FilterCondition::CollectionFromJSON( $this->aConditions = empty($aFilter['Conditions']) ? array() : FilterCondition::CollectionFromJSON($aFilter['Conditions']);
isset($aFilter['Conditions']) ? $aFilter['Conditions'] : array());
return true; return !empty($this->aConditions);
} }
public function jsonSerialize() public function jsonSerialize()

View file

@ -7,35 +7,22 @@ class FilterCondition implements \JsonSerializable
/** /**
* @var string * @var string
*/ */
private $sField; private $sField = '';
/** /**
* @var string * @var string
*/ */
private $sType; private $sType = '';
/** /**
* @var string * @var string
*/ */
private $sValue; private $sValue = '';
/** /**
* @var string * @var string
*/ */
private $sValueSecond; private $sValueSecond = '';
public function __construct()
{
$this->Clear();
}
public function Clear()
{
$this->sField = \RainLoop\Providers\Filters\Enumerations\ConditionField::FROM;
$this->sType = \RainLoop\Providers\Filters\Enumerations\ConditionType::EQUAL_TO;
$this->sValue = '';
$this->sValueSecond = '';
}
public function Field() : string public function Field() : string
{ {
@ -59,13 +46,12 @@ class FilterCondition implements \JsonSerializable
public function FromJSON(array $aData) : bool public function FromJSON(array $aData) : bool
{ {
$this->sField = isset($aData['Field']) ? $aData['Field'] : if (empty($aData['Field']) || empty($aData['Type']) || empty($aData['Value'])) {
\RainLoop\Providers\Filters\Enumerations\ConditionField::FROM; return false;
}
$this->sType = isset($aData['Type']) ? $aData['Type'] : $this->sField = $aData['Field'];
\RainLoop\Providers\Filters\Enumerations\ConditionType::EQUAL_TO; $this->sType = $aData['Type'];
$this->sValue = (string) $aData['Value'];
$this->sValue = isset($aData['Value']) ? (string) $aData['Value'] : '';
$this->sValueSecond = isset($aData['ValueSecond']) ? (string) $aData['ValueSecond'] : ''; $this->sValueSecond = isset($aData['ValueSecond']) ? (string) $aData['ValueSecond'] : '';
return true; return true;
@ -92,10 +78,10 @@ class FilterCondition implements \JsonSerializable
{ {
return array( return array(
'@Object' => 'Object/FilterCondition', '@Object' => 'Object/FilterCondition',
'field' => $this->Field(), 'Field' => $this->Field(),
'type' => $this->Type(), 'Type' => $this->Type(),
'value' => $this->Value(), 'Value' => $this->Value(),
'valueSecond' => $this->ValueSecond() 'ValueSecond' => $this->ValueSecond()
); );
} }
} }