From 41807840339de0499aab6727670abfcbb8825a54 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 4 May 2022 18:46:43 +1200 Subject: [PATCH] Update document get resolution --- src/Appwrite/GraphQL/Builder.php | 36 +++++++------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/src/Appwrite/GraphQL/Builder.php b/src/Appwrite/GraphQL/Builder.php index ddfa7d154a..1a7ab8f4e1 100644 --- a/src/Appwrite/GraphQL/Builder.php +++ b/src/Appwrite/GraphQL/Builder.php @@ -515,7 +515,7 @@ class Builder ]; } - private static function queryGet( + private static function resolveDocumentGet( App $utopia, Request $request, Response $response, @@ -526,39 +526,19 @@ class Builder return fn($type, $args, $context, $info) => new CoroutinePromise( function (callable $resolve, callable $reject) use ($utopia, $request, $response, $dbForProject, $collectionId, $type, $args) { try { - $swooleRq = $request->getSwoole(); - $swooleRq->post = [ + $swoole = $request->getSwoole(); + $swoole->post = [ 'collectionId' => $collectionId, 'documentId' => $args['id'], ]; - // Drop json content type so post args are used directly - if (\array_key_exists('content-type', $swooleRq->header) - && $swooleRq->header['content-type'] === 'application/json') { - unset($swooleRq->header['content-type']); - } + $swoole->server['request_method'] = 'GET'; + $swoole->server['request_uri'] = "/v1/database/collections/$collectionId/documents/{$args['id']}"; + $swoole->server['path_info'] = "/v1/database/collections/$collectionId/documents/{$args['id']}"; - $url = '/v1/database/collections/:collectionId/documents/:documentId'; - $route = $utopia->getRoutes()['GET'][$url]; - - $request = new Request($swooleRq); - $response = new Response($response->getSwoole()); - - $utopia->setResource('request', fn() => $request); - $utopia->setResource('response', fn() => $response); - - $response->setContentType(Response::CONTENT_TYPE_NULL); - - try { - $utopia->setRoute($route)->execute($route, $request); - } catch (\Throwable $e) { - $reject($e); - } - - $result = $response->getPayload(); - - $resolve($result['data']); + self::resolve($utopia, $swoole, $response, $resolve, $reject); } catch (\Throwable $e) { $reject($e); + return; } } );