1
0
Fork 0
mirror of synced 2024-10-02 18:26:49 +13:00

Get current request context utopia instance in cached resolvers

This commit is contained in:
Jake Barnby 2022-07-11 18:51:08 +12:00
parent 8a9a5bec1e
commit de5d0eec06

View file

@ -297,6 +297,8 @@ class Builder
$schemaVersion = $register->has('apiSchemaVersion') ? $register->get('apiSchemaVersion') : '';
$apiSchema = $register->has('apiSchema') ? $register->get('apiSchema') : false;
App::setResource('current', fn() => $utopia);
if (!$apiSchema || \version_compare($envVersion, $schemaVersion, "!=")) {
$apiSchema = self::buildAPISchema($utopia);
$register->set('apiSchema', fn() => $apiSchema);
@ -443,6 +445,7 @@ class Builder
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $route, $args, $context, $info) {
// Mutate the original request object to match route
$utopia = $utopia->getResource('current', true);
$request = $utopia->getResource('request', true);
$response = $utopia->getResource('response', true);
$swoole = $request->getSwoole();
@ -579,6 +582,7 @@ class Builder
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $dbForProject, $databaseId, $collectionId, $type, $args) {
try {
$utopia = $utopia->getResource('current', true);
$request = $utopia->getResource('request', true);
$response = $utopia->getResource('response', true);
$swoole = $request->getSwoole();
@ -608,6 +612,7 @@ class Builder
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $dbForProject, $databaseId, $collectionId, $type, $args) {
$utopia = $utopia->getResource('current', true);
$request = $utopia->getResource('request', true);
$response = $utopia->getResource('response', true);
$swoole = $request->getSwoole();
@ -639,6 +644,7 @@ class Builder
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $dbForProject, $databaseId, $collectionId, $method, $type, $args) {
$utopia = $utopia->getResource('current', true);
$request = $utopia->getResource('request', true);
$response = $utopia->getResource('response', true);
$swoole = $request->getSwoole();
@ -677,6 +683,7 @@ class Builder
): callable {
return fn($type, $args, $context, $info) => new CoroutinePromise(
function (callable $resolve, callable $reject) use ($utopia, $dbForProject, $databaseId, $collectionId, $type, $args) {
$utopia = $utopia->getResource('current', true);
$request = $utopia->getResource('request', true);
$response = $utopia->getResource('response', true);
$swoole = $request->getSwoole();