Update graphql resources

This commit is contained in:
Jake Barnby
2022-04-07 18:38:38 +12:00
parent c2ee34584e
commit eb85ff8e1e
3 changed files with 39 additions and 30 deletions
+22 -15
View File
@@ -24,6 +24,7 @@ use Appwrite\Extend\Exception;
use Appwrite\Auth\Auth;
use Appwrite\Event\Event;
use Appwrite\GraphQL\Builder;
use Appwrite\GraphQL\SwoolePromiseAdapter;
use Appwrite\Network\Validator\Email;
use Appwrite\Network\Validator\IP;
use Appwrite\Network\Validator\URL;
@@ -496,6 +497,9 @@ $register->set('cache', function () { // This is usually for our workers or CLI
return $redis;
});
$register->set('promiseAdapter', function () {
return new SwoolePromiseAdapter();
});
/*
* Localization
@@ -789,8 +793,6 @@ App::setResource('dbForProject', function($db, $cache, $project) {
$database->setDefaultDatabase(App::getEnv('_APP_DB_SCHEMA', 'appwrite'));
$database->setNamespace("_{$project->getId()}");
Console::info("Getting dbForProject with ID: {$project->getId()}");
return $database;
}, ['db', 'cache', 'project']);
@@ -858,18 +860,23 @@ App::setResource('geodb', function($register) {
return $register->get('geodb');
}, ['register']);
App::setResource('schema', function($utopia, $response, $request, $register, $dbForProject) {
try {
Console::log('Getting GraphQL schema from register...');
$schema = $register->get('_schema');
$schema = Builder::appendSchema($schema, $dbForProject);
} catch (\Exception $e) {
Console::error('Base GraphQL schema not present. Generating...');
$schema = Builder::buildSchema($utopia, $response, $register, $dbForProject);
Console::error('Built GraphQL schema: ' . \json_encode($schema));
$register->set('_schema', function () use ($schema) {
return $schema;
});
App::setResource('promiseAdapter', function ($register) {
/** @var Utopia\Registry\Registry $register */
return $register->get('promiseAdapter');
}, ['register']);
App::setResource('apiSchema', function ($utopia, $response, $register) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Registry\Registry $register */
if ($register->has('apiSchema')) {
return $register->get('apiSchema');
}
$schema = Builder::buildAPISchema($utopia, $response, $register);
$register->set('apiSchema', static fn() => $schema);
return $schema;
}, ['utopia', 'response', 'request', 'register', 'dbForProject']);
}, ['utopia', 'response', 'register']);
+1 -1
View File
@@ -47,7 +47,7 @@
"utopia-php/config": "0.2.*",
"utopia-php/database": "0.15.*",
"utopia-php/locale": "0.4.*",
"utopia-php/registry": "0.5.*",
"utopia-php/registry": "dev-feat-allow-querying",
"utopia-php/preloader": "0.2.*",
"utopia-php/domains": "1.1.*",
"utopia-php/swoole": "0.3.*",
Generated
+16 -14
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "de0b7c4c493217f3e9575af0e09277f2",
"content-hash": "39297e719edd93815a08c042decd55be",
"packages": [
{
"name": "adhocore/jwt",
@@ -2576,16 +2576,16 @@
},
{
"name": "utopia-php/registry",
"version": "0.5.0",
"version": "dev-feat-allow-querying",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/registry.git",
"reference": "bedc4ed54527b2803e6dfdccc39449f98522b70d"
"reference": "3cd3c13ba906af820b02dd717d92e2a1bad3eb7b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/registry/zipball/bedc4ed54527b2803e6dfdccc39449f98522b70d",
"reference": "bedc4ed54527b2803e6dfdccc39449f98522b70d",
"url": "https://api.github.com/repos/utopia-php/registry/zipball/3cd3c13ba906af820b02dd717d92e2a1bad3eb7b",
"reference": "3cd3c13ba906af820b02dd717d92e2a1bad3eb7b",
"shasum": ""
},
"require": {
@@ -2622,9 +2622,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/registry/issues",
"source": "https://github.com/utopia-php/registry/tree/0.5.0"
"source": "https://github.com/utopia-php/registry/tree/feat-allow-querying"
},
"time": "2021-03-10T10:45:22+00:00"
"time": "2022-04-06T03:43:58+00:00"
},
{
"name": "utopia-php/storage",
@@ -6393,16 +6393,16 @@
},
{
"name": "twig/twig",
"version": "v3.3.9",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "6ff9b0e440fa66f97f207e181c41340ddfa5683d"
"reference": "8442df056c51b706793adf80a9fd363406dd3674"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/6ff9b0e440fa66f97f207e181c41340ddfa5683d",
"reference": "6ff9b0e440fa66f97f207e181c41340ddfa5683d",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/8442df056c51b706793adf80a9fd363406dd3674",
"reference": "8442df056c51b706793adf80a9fd363406dd3674",
"shasum": ""
},
"require": {
@@ -6453,7 +6453,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.3.9"
"source": "https://github.com/twigphp/Twig/tree/v3.3.10"
},
"funding": [
{
@@ -6465,7 +6465,7 @@
"type": "tidelift"
}
],
"time": "2022-03-25T09:37:52+00:00"
"time": "2022-04-06T06:47:41+00:00"
},
{
"name": "vimeo/psalm",
@@ -6627,7 +6627,9 @@
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"stability-flags": {
"utopia-php/registry": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {