- WIP on SearchAttributes supporting Request's attributes

This commit is contained in:
Dave Mc Nicoll committed 2024-06-04 13:33:48 +00:00
1 parent bd9078230d
commit bbfd7c02b4
6 files changed
+70 -9

No files matched your search

@@ -0,0 +1,14 @@
<?php
namespace Ulmus\SearchRequest\Attribute;
enum PropertyValueSource
{
case QueryParams;
case RequestAttribute;
public const ATTRIBUTE_FIRST = [ self::RequestAttribute, self::QueryParams ];
public const QUERY_PARAMS_FIRST = [ self::QueryParams, self::RequestAttribute ];
}
@@ -13,5 +13,6 @@ class SearchLike extends SearchParameter
public bool $toggle = false,
public SearchMethodEnum $method = SearchMethodEnum::Like,
public string $description = "",
public PropertyValueSource|array $source = PropertyValueSource::QueryParams,
) {}
}
@@ -5,8 +5,16 @@ namespace Ulmus\SearchRequest\Attribute;
use Ulmus\SearchRequest\SearchMethodEnum;
#[\Attribute(\Attribute::TARGET_PROPERTY)]
class SearchParameter
{
abstract class SearchParameter {
public PropertyValueSource|array $source = PropertyValueSource::QueryParams;
public null|string|\Stringable|array $field = null;
public string $description = "";
public function getSources() : array
{
return is_array($this->source) ? $this->source : [ $this->source ];
}
}
@@ -13,5 +13,6 @@ class SearchWhere extends SearchParameter
public bool $toggle = false,
public SearchMethodEnum $method = SearchMethodEnum::Where,
public string $description = "",
public PropertyValueSource|array $source = PropertyValueSource::QueryParams,
) {}
}