diff --git a/src/SearchRequest/Attribute/FieldValueModifier.php b/src/SearchRequest/Attribute/FieldValueModifier.php new file mode 100644 index 0000000..30cd8ae --- /dev/null +++ b/src/SearchRequest/Attribute/FieldValueModifier.php @@ -0,0 +1,9 @@ +length, $this->padWith, $this->type); + } +} \ No newline at end of file diff --git a/src/SearchRequest/ParsedSearchParameter.php b/src/SearchRequest/ParsedSearchParameter.php new file mode 100644 index 0000000..7054375 --- /dev/null +++ b/src/SearchRequest/ParsedSearchParameter.php @@ -0,0 +1,48 @@ +searchMethod) { + SearchMethodEnum::Like => "%$this->value%", + SearchMethodEnum::LikeLeft => "%$this->value", + SearchMethodEnum::LikeRight => "$this->value%", + default => $this->value, + }; + } + + public function operator() : string { + if (isset($this->operator)) { + return $this->operator; + } + + return match ($this->searchMethod) { + SearchMethodEnum::Like => SearchRequestInterface::SEARCH_REQUEST_OPERATOR_LIKE, + default => SearchRequestInterface::SEARCH_REQUEST_OPERATOR_EQUAL, + }; + } + + + public function condition() : string { + if (isset($this->condition)) { + return $this->condition; + } + + return match ($this->searchMethod) { + SearchMethodEnum::Like => SearchRequestInterface::SEARCH_REQUEST_CONDITION_OR, + default => SearchRequestInterface::SEARCH_REQUEST_CONDITION_AND, + }; + } +} \ No newline at end of file