1
0
Fork 0
mirror of synced 2024-09-30 01:08:13 +13:00

feat: refactoring and code clean up

This commit is contained in:
Christy Jacob 2021-03-10 19:21:03 +05:30
parent 3b0884e628
commit 2b9f974125
5 changed files with 42 additions and 28 deletions

View file

@ -8,7 +8,9 @@ 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;
@ -59,30 +61,36 @@ App::post('/v1/graphql')
->inject('request')
->inject('response')
->inject('schema')
->middleware(true)
->middleware(false)
->action(function ($request, $response, $schema) {
$query = $request->getPayload('query', '');
$variables = $request->getPayload('variables', null);
$response->setContentType(Response::CONTENT_TYPE_NULL);
// $myErrorFormatter = function(Error $error) {
// $formattedError = FormattedError::createFromException($error);
// var_dump("***** IN ERROR FORMATTER ******");
// return $formattedError;
// };
try {
$rootValue = [];
$result = GraphQL::executeQuery($schema, $query, $rootValue, null, $variables);
$output = $result->toArray();
} catch (\Exception $error) {
$output = [
'errors' => [
[
'message' => $error->getMessage().'xxx',
'code' => $error->getCode(),
'file' => $error->getFile(),
'line' => $error->getLine(),
'trace' => $error->getTrace(),
]
$query = $request->getPayload('query', '');
$variables = $request->getPayload('variables', null);
$response->setContentType(Response::CONTENT_TYPE_NULL);
try {
$rootValue = [];
$result = GraphQL::executeQuery($schema, $query, $rootValue, null, $variables);
$output = $result->toArray();
} catch (\Exception $error) {
$output = [
'errors' => [
[
'message' => $error->getMessage().'xxx',
'code' => $error->getCode(),
'file' => $error->getFile(),
'line' => $error->getLine(),
'trace' => $error->getTrace(),
]
];
}
$response->json($output);
]
];
}
$response->json($output);
}
);

View file

@ -33,7 +33,6 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
/** @var bool $mode */
/** @var array $clients */
var_dump("*********** In general.php init *************");
$localeParam = (string)$request->getParam('locale', $request->getHeader('x-appwrite-locale', ''));
@ -43,6 +42,8 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
$route = $utopia->match($request);
var_dump("*********** In general.php init with route {$route->getURL()} *************");
if (!empty($route->getLabel('sdk.platform', [])) && empty($project->getId()) && ($route->getLabel('scope', '') !== 'public')) {
throw new Exception('Missing or unknown project ID', 400);
}
@ -169,7 +170,9 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
$scopes = $roles[$role]['scopes']; // Allowed scopes for user role
$authKey = $request->getHeader('x-appwrite-key', '');
var_dump("***** AUTH KEY ******");
var_dump($authKey);
if (!empty($authKey)) { // API Key authentication
// Check if given key match project API keys
$key = $project->search('secret', $authKey, $project->getAttribute('keys', []));
@ -212,9 +215,9 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
// TDOO Check if user is god
var_dump("*********** Allowed Scopes *********");
var_dump($scopes);
var_dump($scope);
// var_dump("*********** Allowed Scopes *********");
// var_dump($scopes);
// var_dump($scope);
if (!\in_array($scope, $scopes)) {
if (empty($project->getId()) || Database::SYSTEM_COLLECTION_PROJECTS !== $project->getCollection()) { // Check if permission is denied because project is missing

View file

@ -81,6 +81,8 @@ $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
@ -99,7 +101,8 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo
try {
Authorization::cleanRoles();
Authorization::setRole('*');
var_dump("******* Running App ******* ");
$app->run($request, $response);
} catch (\Throwable $th) {
var_dump("*********** In http.php catching error *************");

View file

@ -18,7 +18,6 @@ class GraphQLBuilder {
public static $typeMapping;
private static function init() {
self::$jsonParser = new JsonType();
self::$typeMapping = [

View file

@ -11,6 +11,7 @@ use GraphQL\Language\AST\ObjectValueNode;
use GraphQL\Language\AST\StringValueNode;
use GraphQL\Type\Definition\ScalarType;
// https://github.com/webonyx/graphql-php/issues/129#issuecomment-309366803
class JsonType extends ScalarType
{
public $name = 'Json';