From b3f96c6b4c7e2f0798a16f06d278d3ac9d6830a9 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 11 Mar 2021 21:14:04 +0530 Subject: [PATCH] feat: refactoring and code clean up --- app/controllers/api/graphql.php | 24 +++++------ app/http.php | 3 -- app/init.php | 4 +- .../{GraphQLBuilder.php => Builder.php} | 41 +++---------------- src/Appwrite/Utopia/Response.php | 8 ---- 5 files changed, 18 insertions(+), 62 deletions(-) rename src/Appwrite/GraphQL/{GraphQLBuilder.php => Builder.php} (82%) diff --git a/app/controllers/api/graphql.php b/app/controllers/api/graphql.php index accaf110f0..8906c5d653 100644 --- a/app/controllers/api/graphql.php +++ b/app/controllers/api/graphql.php @@ -1,17 +1,10 @@ middleware(false) ->action(function ($request, $response, $schema, $utopia, $register) { - // $myErrorFormatter = function(Error $error) { - // $formattedError = FormattedError::createFromException($error); - // var_dump("***** IN ERROR FORMATTER ******"); - // return $formattedError; - // }; + $myErrorFormatter = function(Error $error) { + $formattedError = FormattedError::createFromException($error); + var_dump("***** IN ERROR FORMATTER ******"); + var_dump("{$error->getMessage()}"); + var_dump("{$error->getCode()}"); + var_dump("{$error->getFile()}"); + var_dump("{$error->getLine()}"); + var_dump("{$error->getTrace()}"); + return $formattedError; + }; $query = $request->getPayload('query', ''); $variables = $request->getPayload('variables', null); @@ -84,7 +82,7 @@ App::post('/v1/graphql') try { $rootValue = []; - $result = GraphQL::executeQuery($schema, $query, $rootValue, null, $variables); + $result = GraphQL::executeQuery($schema, $query, $rootValue, null, $variables)->setErrorFormatter($myErrorFormatter); $output = $result->toArray(); } catch (\Exception $error) { $output = [ diff --git a/app/http.php b/app/http.php index 93ba580efe..07e12dedaf 100644 --- a/app/http.php +++ b/app/http.php @@ -81,8 +81,6 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo $request = new Request($swooleRequest); $response = new Response($swooleResponse); - var_dump($swooleRequest->header); - if(Files::isFileLoaded($request->getURI())) { $time = (60 * 60 * 24 * 365 * 2); // 45 days cache @@ -101,7 +99,6 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo try { Authorization::cleanRoles(); Authorization::setRole('*'); - var_dump("******* Running App ******* "); $app->run($request, $response); } catch (\Throwable $th) { diff --git a/app/init.php b/app/init.php index 6da665ab38..4156ef15c3 100644 --- a/app/init.php +++ b/app/init.php @@ -21,7 +21,7 @@ use Appwrite\Database\Document; use Appwrite\Database\Validator\Authorization; use Appwrite\Event\Event; use Appwrite\Extend\PDO; -use Appwrite\GraphQL\GraphQLBuilder; +use Appwrite\GraphQL\Builder; use Appwrite\OpenSSL\OpenSSL; use Utopia\App; use Utopia\View; @@ -516,7 +516,7 @@ App::setResource('schema', function($utopia, $response, $request, $register) { $schema = $register->get('_schema'); } catch (Exception $e) { var_dump('[INFO] Exception, Schema not present. Generating Schema'); - $schema = GraphQLBuilder::buildSchema($utopia, $response, $register); + $schema = Builder::buildSchema($utopia, $response, $register); $register->set('_schema', function () use ($schema){ // Register cache connection return $schema; }); diff --git a/src/Appwrite/GraphQL/GraphQLBuilder.php b/src/Appwrite/GraphQL/Builder.php similarity index 82% rename from src/Appwrite/GraphQL/GraphQLBuilder.php rename to src/Appwrite/GraphQL/Builder.php index 147d722dd4..66f59b2ba2 100644 --- a/src/Appwrite/GraphQL/GraphQLBuilder.php +++ b/src/Appwrite/GraphQL/Builder.php @@ -5,14 +5,14 @@ namespace Appwrite\GraphQL; use Appwrite\GraphQL\Types\JsonType; use Appwrite\Utopia\Response; use Appwrite\Utopia\Response\Model; -use Exception; use GraphQL\Type\Definition\ListOfType; use GraphQL\Type\Definition\ObjectType; use GraphQL\Type\Definition\Type; use GraphQL\Type\Schema; use MySafeException; +use Exception; -class GraphQLBuilder { +class Builder { public static $jsonParser; @@ -31,6 +31,7 @@ class GraphQLBuilder { ]; } + static function createTypeMapping(Model $model, Response $response) { /* @@ -91,17 +92,7 @@ class GraphQLBuilder { $fields[$keyWithoutSpecialChars] = [ 'type' => $type, 'description' => $props['description'], - 'resolve' => function ($object, $args, $context, $info) use ($key, $type) { - - // var_dump("************* RESOLVING FIELD {$info->fieldName} *************"); - // var_dump($info->returnType->getWrappedType()); - // var_dump("isListType : ", $info->returnType instanceof ListOfType); - // var_dump("isCompositeType : ", Type::isCompositeType($info->returnType)); - // var_dump("isBuiltinType : ", Type::isBuiltInType($info->returnType)); - // var_dump("isLeafType : ", Type::isLeafType($info->returnType)); - // var_dump("isOutputType : ", Type::isOutputType($info->returnType)); - // var_dump("PHP Type of object: " . gettype($object[$key])); - + 'resolve' => function ($object, $args, $context, $info) use ($key) { return $object[$key]; } ]; @@ -212,40 +203,22 @@ class GraphQLBuilder { if ($namespace == 'database' || true) { $methodName = $namespace.'_'.$route->getLabel('sdk.method', ''); $responseModelName = $route->getLabel('sdk.response.model', ""); - // var_dump("******************************************"); - // var_dump("Processing route : ${method} : {$route->getURL()}"); - // var_dump("Model Name : ${responseModelName}"); if ( $responseModelName !== "" && $responseModelName !== Response::MODEL_NONE ) { $responseModel = $response->getModel($responseModelName); self::createTypeMapping($responseModel, $response); $type = self::$typeMapping[$responseModel->getType()]; - // var_dump("Type Created : ${type}"); $args = self::getArgs($route->getParams(), $utopia); - // var_dump("Args Generated :"); - // var_dump($args); - + $field = [ 'type' => $type, 'description' => $route->getDesc(), 'args' => $args, 'resolve' => function ($type, $args, $context, $info) use (&$register, $route) { - // var_dump("************* REACHED RESOLVE FOR {$info->fieldName} *****************"); - // var_dump($route); - // var_dump("************* CONTEXT *****************"); - // var_dump($context); - // var_dump("********************** ARGS *******************"); - // var_dump($args); - $utopia = $register->get('__app'); $response = $register->get('__response'); $utopia->setRoute($route); $utopia->execute($route, $args); - - // var_dump("**************** OUTPUT ************"); - // var_dump($response->getPayload()); - $result = $response->getPayload(); - if (self::isModel($result, $response->getModel(Response::MODEL_ERROR)) || self::isModel($result, $response->getModel(Response::MODEL_ERROR_DEV))) { throw new MySafeException($result['message'], $result['code']); } @@ -259,10 +232,6 @@ class GraphQLBuilder { } else if ($method == 'POST' || $method == 'PUT' || $method == 'PATCH' || $method == 'DELETE') { $mutationFields[$methodName] = $field; } - - // var_dump("Processed route : ${method} : {$route->getURL()}"); - } else { - // var_dump("Skipping route : {$route->getURL()}"); } } } diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index a51a4f1480..d0e61321b9 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -336,14 +336,6 @@ class Response extends SwooleResponse $this->payload = $output; - // var_dump("********************** PAYLOAD SET *********************"); - // var_dump("Message : {$output['message']}"); - // var_dump("Code : {$output['code']}"); - // var_dump("Version : {$output['version']}"); - // var_dump("File : {$output['file']}"); - // var_dump("Line : {$output['line']}"); - // var_dump("Trace : "); - return $this->payload; }