feat: refactoring and code clean up

This commit is contained in:
Christy Jacob
2021-03-11 21:14:04 +05:30
parent 7319a1eeb9
commit b3f96c6b4c
5 changed files with 18 additions and 62 deletions
+11 -13
View File
@@ -1,17 +1,10 @@
<?php
use Appwrite\GraphQL\GraphQLBuilder;
use GraphQL\GraphQL;
use GraphQL\Type\Schema;
use GraphQL\Type\Definition\ObjectType;
use GraphQL\Type\Definition\Type;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
use Appwrite\GraphQL\Types\JsonType;
use GraphQL\Error\Error;
use GraphQL\Error\ClientAware;
use GraphQL\Error\FormattedError;
use GraphQL\Type\Definition\ListOfType;
use Utopia\App;
/**
@@ -66,11 +59,16 @@ App::post('/v1/graphql')
->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 = [
-3
View File
@@ -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) {
+2 -2
View File
@@ -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;
});
@@ -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()}");
}
}
}
-8
View File
@@ -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;
}