Skip to content

Commit 1f0be55

Browse files
Merge pull request #84 from utopia-php/feat-query-operator-helper-method
Feat: add helper method to check query operators
2 parents a09227d + 8c5a139 commit 1f0be55

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

src/Database/Query.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,28 @@ public function getQuery(): array
8888
];
8989
}
9090

91+
/**
92+
* Check if operator is supported
93+
*
94+
* @return bool
95+
*/
96+
public static function isOperator($value): bool
97+
{
98+
switch ($value) {
99+
case self::TYPE_EQUAL:
100+
case self::TYPE_NOTEQUAL:
101+
case self::TYPE_LESSER:
102+
case self::TYPE_LESSEREQUAL:
103+
case self::TYPE_GREATER:
104+
case self::TYPE_GREATEREQUAL:
105+
case self::TYPE_CONTAINS:
106+
case self::TYPE_SEARCH:
107+
return true;
108+
default:
109+
return false;
110+
}
111+
}
112+
91113
/**
92114
* Parse query filter
93115
*

tests/Database/QueryTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,26 @@ public function testGetQuery()
121121
$this->assertContains('Iron Man', $query['values']);
122122
}
123123

124+
public function testIsOperator()
125+
{
126+
$this->assertEquals(true, Query::isOperator('equal'));
127+
$this->assertEquals(true, Query::isOperator('notEqual'));
128+
$this->assertEquals(true, Query::isOperator('lesser'));
129+
$this->assertEquals(true, Query::isOperator('lesserEqual'));
130+
$this->assertEquals(true, Query::isOperator('greater'));
131+
$this->assertEquals(true, Query::isOperator('greaterEqual'));
132+
$this->assertEquals(true, Query::isOperator('contains'));
133+
$this->assertEquals(true, Query::isOperator('search'));
134+
135+
$this->assertEquals(true, Query::isOperator(Query::TYPE_EQUAL));
136+
$this->assertEquals(true, Query::isOperator(Query::TYPE_NOTEQUAL));
137+
$this->assertEquals(true, Query::isOperator(Query::TYPE_LESSER));
138+
$this->assertEquals(true, Query::isOperator(Query::TYPE_LESSEREQUAL));
139+
$this->assertEquals(true, Query::isOperator(Query::TYPE_GREATER));
140+
$this->assertEquals(true, Query::isOperator(Query::TYPE_GREATEREQUAL));
141+
$this->assertEquals(true, Query::isOperator(Query::TYPE_CONTAINS));
142+
$this->assertEquals(true, Query::isOperator(QUERY::TYPE_SEARCH));
143+
144+
$this->assertEquals(false, Query::isOperator('invalid'));
145+
}
124146
}

0 commit comments

Comments
 (0)