From d3b16317e9b4787b9ce6b5ac74eae3da45ce0ee3 Mon Sep 17 00:00:00 2001 From: Awilum Date: Sat, 10 Sep 2022 13:08:43 +0300 Subject: [PATCH] feat(query-api): add ability to create nested queries #587 --- src/flextype/core/Endpoints/Query.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/flextype/core/Endpoints/Query.php b/src/flextype/core/Endpoints/Query.php index 8d4d33af..af459f7e 100644 --- a/src/flextype/core/Endpoints/Query.php +++ b/src/flextype/core/Endpoints/Query.php @@ -21,6 +21,7 @@ use Psr\Http\Message\ServerRequestInterface; use function Glowy\Strings\strings; use function Flextype\parsers; +use function Flextype\collection; use function count; class Query extends Api @@ -51,8 +52,11 @@ class Query extends Api $data = []; + // Get flat representation of queries + $queries = collection($requestParsedBody['query'])->dot()->toArray(); + // Evaluate the queries - foreach ($requestParsedBody['query'] as $key => $value) { + foreach ($queries as $key => $value) { $evaluatedValue = parsers()->expressions()->eval($value); if ($evaluatedValue instanceof \Glowy\Arrays\Arrays) { @@ -79,6 +83,9 @@ class Query extends Api $result[$key] = $value; } + // Unflat the result + $result = collection($result)->undot()->toArray(); + // Return response if (count($result) > 0) { return $this->getApiResponse($response, $result, 200);