-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathResourceValidation.php
More file actions
97 lines (81 loc) · 2.72 KB
/
ResourceValidation.php
File metadata and controls
97 lines (81 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
namespace Seier\Resting\ResourceValidation;
use Seier\Resting\Fields\Field;
trait ResourceValidation
{
private array $validators = [];
public function getResourceValidators(): array
{
return $this->validators;
}
public function addResourceValidator(ResourceValidator $validator): static
{
$this->validators[] = $validator;
return $this;
}
public function lessThan(
Field|int|string|bool|float|array $left,
Field|int|string|bool|float|array $right,
): static
{
$this->validators[] = new ResourceAttributeComparisonValidator(
resource: $this,
operator: ResourceAttributeComparisonOperator::LessThan,
left: is_array($left) ? $left : [$left],
right: is_array($right) ? $right : [$right],
);
return $this;
}
public function greaterThan(
Field|int|string|bool|float|array $left,
Field|int|string|bool|float|array $right,
): static
{
$this->validators[] = new ResourceAttributeComparisonValidator(
resource: $this,
operator: ResourceAttributeComparisonOperator::GreaterThan,
left: is_array($left) ? $left : [$left],
right: is_array($right) ? $right : [$right],
);
return $this;
}
public function equal(
Field|int|string|bool|float|array $left,
Field|int|string|bool|float|array $right,
): static
{
$this->validators[] = new ResourceAttributeComparisonValidator(
resource: $this,
operator: ResourceAttributeComparisonOperator::Equal,
left: is_array($left) ? $left : [$left],
right: is_array($right) ? $right : [$right],
);
return $this;
}
public function lessThanOrEqual(
Field|int|string|bool|float|array $left,
Field|int|string|bool|float|array $right,
): static
{
$this->validators[] = new ResourceAttributeComparisonValidator(
resource: $this,
operator: ResourceAttributeComparisonOperator::LessThanOrEqual,
left: is_array($left) ? $left : [$left],
right: is_array($right) ? $right : [$right],
);
return $this;
}
public function greaterThanOrEqual(
Field|int|string|bool|float|array $left,
Field|int|string|bool|float|array $right,
): static
{
$this->validators[] = new ResourceAttributeComparisonValidator(
resource: $this,
operator: ResourceAttributeComparisonOperator::GreaterThanOrEqual,
left: is_array($left) ? $left : [$left],
right: is_array($right) ? $right : [$right],
);
return $this;
}
}