mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
feat: refactoring and code clean up
This commit is contained in:
@@ -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 = [
|
||||
|
||||
@@ -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
@@ -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()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user