mirror of
https://github.com/appwrite/appwrite
synced 2026-05-21 16:08:22 +00:00
fixes: General refactors
This commit is contained in:
parent
d0a55e266c
commit
5ac5baca38
5 changed files with 47 additions and 18 deletions
|
|
@ -5,7 +5,6 @@ require_once __DIR__ . '/controllers/general.php';
|
|||
|
||||
use Appwrite\Event\Certificate;
|
||||
use Appwrite\Event\Delete;
|
||||
use Appwrite\Event\Hamster;
|
||||
use Appwrite\Platform\Appwrite;
|
||||
use Swoole\Runtime;
|
||||
use Utopia\CLI\Adapters\Swoole as SwooleCLI;
|
||||
|
|
@ -30,7 +29,6 @@ $auth = new Dependency();
|
|||
$register = new Dependency();
|
||||
$logError = new Dependency();
|
||||
$queueForDeletes = new Dependency();
|
||||
$queueForHamster = new Dependency();
|
||||
$queueForCertificates = new Dependency();
|
||||
|
||||
$register
|
||||
|
|
@ -39,12 +37,6 @@ $register
|
|||
return $global;
|
||||
});
|
||||
|
||||
$queueForHamster
|
||||
->setName('queueForHamster')
|
||||
->inject('queue')
|
||||
->setCallback(function (Connection $queue) {
|
||||
return new Hamster($queue);
|
||||
});
|
||||
|
||||
$queueForDeletes
|
||||
->setName('queueForDeletes')
|
||||
|
|
@ -108,7 +100,6 @@ $auth
|
|||
$container->set($auth);
|
||||
$container->set($logError);
|
||||
$container->set($register);
|
||||
$container->set($queueForHamster);
|
||||
$container->set($queueForDeletes);
|
||||
$container->set($queueForCertificates);
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ use Utopia\Database\Exception\Duplicate as DuplicateException;
|
|||
use Utopia\Database\Exception\Limit as LimitException;
|
||||
use Utopia\Database\Exception\Restricted as RestrictedException;
|
||||
use Utopia\Database\Exception\Structure as StructureException;
|
||||
use Utopia\Database\Exception\Query as QueryException;
|
||||
use Utopia\Database\Helpers\ID;
|
||||
use Utopia\Database\Helpers\Permission;
|
||||
use Utopia\Database\Helpers\Role;
|
||||
|
|
|
|||
|
|
@ -761,13 +761,6 @@ Http::error()
|
|||
}
|
||||
|
||||
if ($logger && ($publish || $error->getCode() === 0)) {
|
||||
try {
|
||||
/** @var Utopia\Database\Document $user */
|
||||
$user = $utopia->getResource('user');
|
||||
} catch (\Throwable) {
|
||||
// All good, user is optional information for logger
|
||||
}
|
||||
|
||||
if (isset($user) && !$user->isEmpty()) {
|
||||
$log->setUser(new User($user->getId()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ $server = new Server('0.0.0.0', '80', [
|
|||
'http_compression_level' => 6,
|
||||
'package_max_length' => $payloadSize,
|
||||
'buffer_output_size' => $payloadSize,
|
||||
'buffer_output_size' => $payloadSize,
|
||||
|
||||
// Server
|
||||
// 'log_level' => 0,
|
||||
|
|
|
|||
47
app/init.php
47
app/init.php
|
|
@ -1,5 +1,4 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Init
|
||||
*
|
||||
|
|
@ -1021,65 +1020,85 @@ foreach ($locales as $locale) {
|
|||
]);
|
||||
|
||||
// Runtime Execution
|
||||
// @phpstan-ignore
|
||||
Http::setResource('log', fn () => new Log());
|
||||
// @phpstan-ignore
|
||||
Http::setResource('logger', function ($register) {
|
||||
return $register->get('logger');
|
||||
}, ['register']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('hooks', function ($register) {
|
||||
return $register->get('hooks');
|
||||
}, ['register']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('register', fn () => $register);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('locale', fn () => new Locale(System::getEnv('_APP_LOCALE', 'en')));
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('localeCodes', function () {
|
||||
return array_map(fn ($locale) => $locale['code'], Config::getParam('locale-codes', []));
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('connections', function () {
|
||||
return new Connections();
|
||||
});
|
||||
|
||||
// Queues
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queue', function (Group $pools, Connections $connections) {
|
||||
$connection = $pools->get('queue')->pop();
|
||||
$connections->add($connection);
|
||||
return $connection->getResource();
|
||||
}, ['pools', 'connections']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForMessaging', function (Connection $queue) {
|
||||
return new Messaging($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForMails', function (Connection $queue) {
|
||||
return new Mail($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForBuilds', function (Connection $queue) {
|
||||
return new Build($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForDatabase', function (Connection $queue) {
|
||||
return new EventDatabase($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForDeletes', function (Connection $queue) {
|
||||
return new Delete($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForEvents', function (Connection $queue) {
|
||||
return new Event($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForAudits', function (Connection $queue) {
|
||||
return new Audit($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForFunctions', function (Connection $queue) {
|
||||
return new Func($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForUsage', function (Connection $queue) {
|
||||
return new Usage($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForCertificates', function (Connection $queue) {
|
||||
return new Certificate($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('queueForMigrations', function (Connection $queue) {
|
||||
return new Migration($queue);
|
||||
}, ['queue']);
|
||||
// @phpstan-ignore
|
||||
Http::setResource('clients', function ($request, $console, $project) {
|
||||
$console->setAttribute('platforms', [ // Always allow current host
|
||||
'$collection' => ID::custom('platforms'),
|
||||
|
|
@ -1132,6 +1151,7 @@ Http::setResource('clients', function ($request, $console, $project) {
|
|||
return \array_unique($clients);
|
||||
}, ['request', 'console', 'project']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('user', function (string $mode, Document $project, Document $console, Request $request, Response $response, Database $dbForProject, Database $dbForConsole, Authorization $auth) {
|
||||
|
||||
$auth->setDefaultStatus(true);
|
||||
|
|
@ -1233,6 +1253,7 @@ Http::setResource('user', function (string $mode, Document $project, Document $c
|
|||
return $user;
|
||||
}, ['mode', 'project', 'console', 'request', 'response', 'dbForProject', 'dbForConsole', 'auth']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('project', function (Database $dbForConsole, Request $request, Document $console, Authorization $auth) {
|
||||
|
||||
$projectId = $request->getParam('project', $request->getHeader('x-appwrite-project', ''));
|
||||
|
|
@ -1246,6 +1267,7 @@ Http::setResource('project', function (Database $dbForConsole, Request $request,
|
|||
return $project;
|
||||
}, ['dbForConsole', 'request', 'console', 'auth']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('session', function (Document $user) {
|
||||
if ($user->isEmpty()) {
|
||||
return;
|
||||
|
|
@ -1267,6 +1289,7 @@ Http::setResource('session', function (Document $user) {
|
|||
return;
|
||||
}, ['user']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('console', function () {
|
||||
return new Document([
|
||||
'$id' => ID::custom('console'),
|
||||
|
|
@ -1307,6 +1330,7 @@ Http::setResource('console', function () {
|
|||
]);
|
||||
}, []);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('dbForProject', function (Group $pools, Database $dbForConsole, Cache $cache, Document $project, Authorization $auth, Connections $connections) {
|
||||
if ($project->isEmpty() || $project->getId() === 'console') {
|
||||
return $dbForConsole;
|
||||
|
|
@ -1353,6 +1377,7 @@ Http::setResource('dbForProject', function (Group $pools, Database $dbForConsole
|
|||
return $database;
|
||||
}, ['pools', 'dbForConsole', 'cache', 'project', 'auth', 'connections']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('dbForConsole', function (Group $pools, Cache $cache, Authorization $auth, Connections $connections) {
|
||||
$connection = $pools->get('console')->pop();
|
||||
$connections->add($connection);
|
||||
|
|
@ -1370,6 +1395,7 @@ Http::setResource('dbForConsole', function (Group $pools, Cache $cache, Authoriz
|
|||
return $database;
|
||||
}, ['pools', 'cache', 'auth', 'connections']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('getProjectDB', function (Group $pools, Database $dbForConsole, $cache, Authorization $auth, Connections $connections) {
|
||||
$databases = []; // TODO: @Meldiron This should probably be responsibility of utopia-php/pools
|
||||
|
||||
|
|
@ -1425,6 +1451,7 @@ Http::setResource('getProjectDB', function (Group $pools, Database $dbForConsole
|
|||
return $getProjectDB;
|
||||
}, ['pools', 'dbForConsole', 'cache', 'auth', 'connections']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('cache', function (Group $pools, Connections $connections) {
|
||||
$list = Config::getParam('pools-cache', []);
|
||||
$adapters = [];
|
||||
|
|
@ -1438,18 +1465,22 @@ Http::setResource('cache', function (Group $pools, Connections $connections) {
|
|||
return new Cache(new Sharding($adapters));
|
||||
}, ['pools', 'connections']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('deviceForLocal', function () {
|
||||
return new Local();
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('deviceForFiles', function ($project) {
|
||||
return getDevice(APP_STORAGE_UPLOADS . '/app-' . $project->getId());
|
||||
}, ['project']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('deviceForFunctions', function ($project) {
|
||||
return getDevice(APP_STORAGE_FUNCTIONS . '/app-' . $project->getId());
|
||||
}, ['project']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('deviceForBuilds', function ($project) {
|
||||
return getDevice(APP_STORAGE_BUILDS . '/app-' . $project->getId());
|
||||
}, ['project']);
|
||||
|
|
@ -1540,6 +1571,7 @@ function getDevice($root): Device
|
|||
}
|
||||
}
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('mode', function ($request) {
|
||||
/** @var Appwrite\Utopia\Request $request */
|
||||
|
||||
|
|
@ -1551,17 +1583,20 @@ Http::setResource('mode', function ($request) {
|
|||
return $request->getParam('mode', $request->getHeader('x-appwrite-mode', APP_MODE_DEFAULT));
|
||||
}, ['request']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('geodb', function ($register) {
|
||||
/** @var Utopia\Registry\Registry $register */
|
||||
return $register->get('geodb');
|
||||
}, ['register']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('passwordsDictionary', function ($register) {
|
||||
/** @var Utopia\Registry\Registry $register */
|
||||
return $register->get('passwordsDictionary');
|
||||
}, ['register']);
|
||||
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('servers', function () {
|
||||
$platforms = Config::getParam('platforms');
|
||||
$server = $platforms[APP_PLATFORM_SERVER];
|
||||
|
|
@ -1573,10 +1608,12 @@ Http::setResource('servers', function () {
|
|||
return $languages;
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('promiseAdapter', function ($register) {
|
||||
return $register->get('promiseAdapter');
|
||||
}, ['register']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('schema', function (Http $utopia, Database $dbForProject, Authorization $auth) {
|
||||
|
||||
$complexity = function (int $complexity, array $args) {
|
||||
|
|
@ -1663,28 +1700,33 @@ Http::setResource('schema', function (Http $utopia, Database $dbForProject, Auth
|
|||
);
|
||||
}, ['utopia', 'dbForProject', 'auth']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('contributors', function () {
|
||||
$path = 'app/config/contributors.json';
|
||||
$list = (file_exists($path)) ? json_decode(file_get_contents($path), true) : [];
|
||||
return $list;
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('employees', function () {
|
||||
$path = 'app/config/employees.json';
|
||||
$list = (file_exists($path)) ? json_decode(file_get_contents($path), true) : [];
|
||||
return $list;
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('heroes', function () {
|
||||
$path = 'app/config/heroes.json';
|
||||
$list = (file_exists($path)) ? json_decode(file_get_contents($path), true) : [];
|
||||
return $list;
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('gitHub', function (Cache $cache) {
|
||||
return new VcsGitHub($cache);
|
||||
}, ['cache']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('requestTimestamp', function ($request) {
|
||||
//TODO: Move this to the Request class itself
|
||||
$timestampHeader = $request->getHeader('x-appwrite-timestamp');
|
||||
|
|
@ -1699,12 +1741,15 @@ Http::setResource('requestTimestamp', function ($request) {
|
|||
return $requestTimestamp;
|
||||
}, ['request']);
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('plan', function (array $plan = []) {
|
||||
return [];
|
||||
});
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('auth', fn () => new Authorization());
|
||||
|
||||
// @phpstan-ignore
|
||||
Http::setResource('pools', function ($register) {
|
||||
return $register->get('pools');
|
||||
}, ['pools']);
|
||||
|
|
|
|||
Loading…
Reference in a new issue