Skip to content

Commit cada16d

Browse files
committed
Fix QL
1 parent b99d5d3 commit cada16d

File tree

3 files changed

+702
-707
lines changed

3 files changed

+702
-707
lines changed

src/Database/Validator/Queries.php

Lines changed: 178 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -1,179 +1,179 @@
11
<?php
2-
3-
namespace Utopia\Database\Validator;
4-
5-
use Utopia\Database\Query;
6-
use Utopia\Database\Validator\Query\Base;
7-
use Utopia\Validator;
8-
9-
class Queries extends Validator
10-
{
11-
/**
12-
* @var string
13-
*/
14-
protected string $message = 'Invalid queries';
15-
16-
/**
17-
* @var array<Base>
18-
*/
19-
protected array $validators;
20-
21-
/**
22-
* @var int
23-
*/
24-
protected int $length;
25-
26-
/**
27-
* Queries constructor
28-
*
29-
* @param array<Base> $validators
30-
*/
31-
public function __construct(array $validators = [], int $length = 0)
32-
{
33-
$this->validators = $validators;
34-
$this->length = $length;
35-
}
36-
37-
/**
38-
* Get Description.
39-
*
40-
* Returns validator description
41-
*
42-
* @return string
43-
*/
44-
public function getDescription(): string
45-
{
46-
return $this->message;
47-
}
48-
49-
/**
50-
* @param array<Query|string> $value
51-
* @return bool
52-
*/
53-
public function isValid($value): bool
54-
{
55-
if (!is_array($value)) {
56-
$this->message = 'Queries must be an array';
57-
return false;
58-
}
59-
60-
if ($this->length && \count($value) > $this->length) {
61-
return false;
62-
}
63-
64-
foreach ($value as $query) {
65-
if (!$query instanceof Query) {
66-
try {
67-
$query = Query::parse($query);
68-
} catch (\Throwable $e) {
69-
$this->message = 'Invalid query: ' . $e->getMessage();
70-
return false;
71-
}
72-
}
73-
74-
if ($query->isNested()) {
75-
if (!self::isValid($query->getValues())) {
76-
return false;
77-
}
78-
}
79-
80-
$method = $query->getMethod();
81-
$methodType = match ($method) {
82-
Query::TYPE_SELECT => Base::METHOD_TYPE_SELECT,
83-
Query::TYPE_LIMIT => Base::METHOD_TYPE_LIMIT,
84-
Query::TYPE_OFFSET => Base::METHOD_TYPE_OFFSET,
85-
Query::TYPE_CURSOR_AFTER,
86-
Query::TYPE_CURSOR_BEFORE => Base::METHOD_TYPE_CURSOR,
87-
Query::TYPE_ORDER_ASC,
88-
Query::TYPE_ORDER_DESC,
89-
Query::TYPE_ORDER_RANDOM => Base::METHOD_TYPE_ORDER,
90-
Query::TYPE_EQUAL,
91-
Query::TYPE_NOT_EQUAL,
92-
Query::TYPE_LESSER,
93-
Query::TYPE_LESSER_EQUAL,
94-
Query::TYPE_GREATER,
95-
Query::TYPE_GREATER_EQUAL,
96-
Query::TYPE_SEARCH,
97-
Query::TYPE_NOT_SEARCH,
98-
Query::TYPE_IS_NULL,
99-
Query::TYPE_IS_NOT_NULL,
100-
Query::TYPE_BETWEEN,
101-
Query::TYPE_NOT_BETWEEN,
102-
Query::TYPE_STARTS_WITH,
103-
Query::TYPE_NOT_STARTS_WITH,
104-
Query::TYPE_ENDS_WITH,
105-
Query::TYPE_NOT_ENDS_WITH,
106-
Query::TYPE_CONTAINS,
107-
Query::TYPE_CONTAINS_ANY,
108-
Query::TYPE_NOT_CONTAINS,
109-
Query::TYPE_AND,
110-
Query::TYPE_OR,
111-
Query::TYPE_CONTAINS_ALL,
112-
Query::TYPE_ELEM_MATCH,
113-
Query::TYPE_CROSSES,
114-
Query::TYPE_NOT_CROSSES,
115-
Query::TYPE_DISTANCE_EQUAL,
116-
Query::TYPE_DISTANCE_NOT_EQUAL,
117-
Query::TYPE_DISTANCE_GREATER_THAN,
118-
Query::TYPE_DISTANCE_LESS_THAN,
119-
Query::TYPE_INTERSECTS,
120-
Query::TYPE_NOT_INTERSECTS,
121-
Query::TYPE_OVERLAPS,
122-
Query::TYPE_NOT_OVERLAPS,
123-
Query::TYPE_TOUCHES,
124-
Query::TYPE_NOT_TOUCHES,
125-
Query::TYPE_VECTOR_DOT,
126-
Query::TYPE_VECTOR_COSINE,
127-
Query::TYPE_VECTOR_EUCLIDEAN,
128-
Query::TYPE_REGEX,
129-
Query::TYPE_EXISTS,
130-
Query::TYPE_NOT_EXISTS => Base::METHOD_TYPE_FILTER,
131-
default => '',
132-
};
133-
134-
$methodIsValid = false;
135-
foreach ($this->validators as $validator) {
136-
if ($validator->getMethodType() !== $methodType) {
137-
continue;
138-
}
139-
if (!$validator->isValid($query)) {
140-
$this->message = 'Invalid query: ' . $validator->getDescription();
141-
return false;
142-
}
143-
144-
$methodIsValid = true;
145-
}
146-
147-
if (!$methodIsValid) {
148-
$this->message = 'Invalid query method: ' . $method;
149-
return false;
150-
}
151-
}
152-
153-
return true;
154-
}
155-
156-
/**
157-
* Is array
158-
*
159-
* Function will return true if object is array.
160-
*
161-
* @return bool
162-
*/
163-
public function isArray(): bool
164-
{
165-
return true;
166-
}
167-
168-
/**
169-
* Get Type
170-
*
171-
* Returns validator type.
172-
*
173-
* @return string
174-
*/
175-
public function getType(): string
176-
{
177-
return self::TYPE_OBJECT;
178-
}
179-
}
2+
//
3+
//namespace Utopia\Database\Validator;
4+
//
5+
//use Utopia\Database\Query;
6+
//use Utopia\Database\Validator\Query\Base;
7+
//use Utopia\Validator;
8+
//
9+
//class Queries extends Validator
10+
//{
11+
// /**
12+
// * @var string
13+
// */
14+
// protected string $message = 'Invalid queries';
15+
//
16+
// /**
17+
// * @var array<Base>
18+
// */
19+
// protected array $validators;
20+
//
21+
// /**
22+
// * @var int
23+
// */
24+
// protected int $length;
25+
//
26+
// /**
27+
// * Queries constructor
28+
// *
29+
// * @param array<Base> $validators
30+
// */
31+
// public function __construct(array $validators = [], int $length = 0)
32+
// {
33+
// $this->validators = $validators;
34+
// $this->length = $length;
35+
// }
36+
//
37+
// /**
38+
// * Get Description.
39+
// *
40+
// * Returns validator description
41+
// *
42+
// * @return string
43+
// */
44+
// public function getDescription(): string
45+
// {
46+
// return $this->message;
47+
// }
48+
//
49+
// /**
50+
// * @param array<Query|string> $value
51+
// * @return bool
52+
// */
53+
// public function isValid($value): bool
54+
// {
55+
// if (!is_array($value)) {
56+
// $this->message = 'Queries must be an array';
57+
// return false;
58+
// }
59+
//
60+
// if ($this->length && \count($value) > $this->length) {
61+
// return false;
62+
// }
63+
//
64+
// foreach ($value as $query) {
65+
// if (!$query instanceof Query) {
66+
// try {
67+
// $query = Query::parse($query);
68+
// } catch (\Throwable $e) {
69+
// $this->message = 'Invalid query: ' . $e->getMessage();
70+
// return false;
71+
// }
72+
// }
73+
//
74+
// if ($query->isNested()) {
75+
// if (!self::isValid($query->getValues())) {
76+
// return false;
77+
// }
78+
// }
79+
//
80+
// $method = $query->getMethod();
81+
// $methodType = match ($method) {
82+
// Query::TYPE_SELECT => Base::METHOD_TYPE_SELECT,
83+
// Query::TYPE_LIMIT => Base::METHOD_TYPE_LIMIT,
84+
// Query::TYPE_OFFSET => Base::METHOD_TYPE_OFFSET,
85+
// Query::TYPE_CURSOR_AFTER,
86+
// Query::TYPE_CURSOR_BEFORE => Base::METHOD_TYPE_CURSOR,
87+
// Query::TYPE_ORDER_ASC,
88+
// Query::TYPE_ORDER_DESC,
89+
// Query::TYPE_ORDER_RANDOM => Base::METHOD_TYPE_ORDER,
90+
// Query::TYPE_EQUAL,
91+
// Query::TYPE_NOT_EQUAL,
92+
// Query::TYPE_LESSER,
93+
// Query::TYPE_LESSER_EQUAL,
94+
// Query::TYPE_GREATER,
95+
// Query::TYPE_GREATER_EQUAL,
96+
// Query::TYPE_SEARCH,
97+
// Query::TYPE_NOT_SEARCH,
98+
// Query::TYPE_IS_NULL,
99+
// Query::TYPE_IS_NOT_NULL,
100+
// Query::TYPE_BETWEEN,
101+
// Query::TYPE_NOT_BETWEEN,
102+
// Query::TYPE_STARTS_WITH,
103+
// Query::TYPE_NOT_STARTS_WITH,
104+
// Query::TYPE_ENDS_WITH,
105+
// Query::TYPE_NOT_ENDS_WITH,
106+
// Query::TYPE_CONTAINS,
107+
// Query::TYPE_CONTAINS_ANY,
108+
// Query::TYPE_NOT_CONTAINS,
109+
// Query::TYPE_AND,
110+
// Query::TYPE_OR,
111+
// Query::TYPE_CONTAINS_ALL,
112+
// Query::TYPE_ELEM_MATCH,
113+
// Query::TYPE_CROSSES,
114+
// Query::TYPE_NOT_CROSSES,
115+
// Query::TYPE_DISTANCE_EQUAL,
116+
// Query::TYPE_DISTANCE_NOT_EQUAL,
117+
// Query::TYPE_DISTANCE_GREATER_THAN,
118+
// Query::TYPE_DISTANCE_LESS_THAN,
119+
// Query::TYPE_INTERSECTS,
120+
// Query::TYPE_NOT_INTERSECTS,
121+
// Query::TYPE_OVERLAPS,
122+
// Query::TYPE_NOT_OVERLAPS,
123+
// Query::TYPE_TOUCHES,
124+
// Query::TYPE_NOT_TOUCHES,
125+
// Query::TYPE_VECTOR_DOT,
126+
// Query::TYPE_VECTOR_COSINE,
127+
// Query::TYPE_VECTOR_EUCLIDEAN,
128+
// Query::TYPE_REGEX,
129+
// Query::TYPE_EXISTS,
130+
// Query::TYPE_NOT_EXISTS => Base::METHOD_TYPE_FILTER,
131+
// default => '',
132+
// };
133+
//
134+
// $methodIsValid = false;
135+
// foreach ($this->validators as $validator) {
136+
// if ($validator->getMethodType() !== $methodType) {
137+
// continue;
138+
// }
139+
// if (!$validator->isValid($query)) {
140+
// $this->message = 'Invalid query: ' . $validator->getDescription();
141+
// return false;
142+
// }
143+
//
144+
// $methodIsValid = true;
145+
// }
146+
//
147+
// if (!$methodIsValid) {
148+
// $this->message = 'Invalid query method: ' . $method;
149+
// return false;
150+
// }
151+
// }
152+
//
153+
// return true;
154+
// }
155+
//
156+
// /**
157+
// * Is array
158+
// *
159+
// * Function will return true if object is array.
160+
// *
161+
// * @return bool
162+
// */
163+
// public function isArray(): bool
164+
// {
165+
// return true;
166+
// }
167+
//
168+
// /**
169+
// * Get Type
170+
// *
171+
// * Returns validator type.
172+
// *
173+
// * @return string
174+
// */
175+
// public function getType(): string
176+
// {
177+
// return self::TYPE_OBJECT;
178+
// }
179+
//}

0 commit comments

Comments
 (0)