summaryrefslogtreecommitdiffstats
path: root/library/Icingadb/Model/CustomvarFlat.php
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:45:00 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:45:00 +0000
commitbe4626482ba8761da39746a6ac60d133d3852a0f (patch)
tree45065832c85c4789237e94b3114360eac91d86f0 /library/Icingadb/Model/CustomvarFlat.php
parentReleasing progress-linux version 1.1.1-1~progress7.99u1. (diff)
downloadicingadb-web-be4626482ba8761da39746a6ac60d133d3852a0f.tar.xz
icingadb-web-be4626482ba8761da39746a6ac60d133d3852a0f.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.php25
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)