diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:45:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:45:00 +0000 |
commit | 260bd89dc5a1b971e9c545ea0822d7b294538cfc (patch) | |
tree | 750aa3e132390af611951c3910067e375f5458f4 /library/Icingadb/Model/CustomvarFlat.php | |
parent | Adding debian version 1.1.1-1. (diff) | |
download | icingadb-web-260bd89dc5a1b971e9c545ea0822d7b294538cfc.tar.xz icingadb-web-260bd89dc5a1b971e9c545ea0822d7b294538cfc.zip |
Merging upstream version 1.1.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/Icingadb/Model/CustomvarFlat.php')
-rw-r--r-- | library/Icingadb/Model/CustomvarFlat.php | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/library/Icingadb/Model/CustomvarFlat.php b/library/Icingadb/Model/CustomvarFlat.php index 99d8aca..e7a0459 100644 --- a/library/Icingadb/Model/CustomvarFlat.php +++ b/library/Icingadb/Model/CustomvarFlat.php @@ -6,11 +6,22 @@ namespace Icinga\Module\Icingadb\Model; use ipl\Orm\Behavior\Binary; use ipl\Orm\Behaviors; +use ipl\Orm\Contract\RewriteFilterBehavior; use ipl\Orm\Model; use ipl\Orm\Query; use ipl\Orm\Relations; +use ipl\Stdlib\Filter; +use ipl\Stdlib\Filter\Condition; use Traversable; +/** + * @property string $id + * @property string $environment_id + * @property string $customvar_id + * @property string $flatname_checksum + * @property string $flatname + * @property ?string $flatvalue + */ class CustomvarFlat extends Model { public function getTableName() @@ -42,6 +53,20 @@ class CustomvarFlat extends Model 'customvar_id', 'flatname_checksum' ])); + $behaviors->add(new class implements RewriteFilterBehavior { + public function rewriteCondition(Condition $condition, $relation = null) + { + if ($condition->metaData()->has('requiresTransformation')) { + /** @var string $columnName */ + $columnName = $condition->metaData()->get('columnName'); + $nameFilter = Filter::like($relation . 'flatname', $columnName); + $class = get_class($condition); + $valueFilter = new $class($relation . 'flatvalue', $condition->getValue()); + + return Filter::all($nameFilter, $valueFilter); + } + } + }); } public function createRelations(Relations $relations) |