From e25dd110498e634e4c0a1ad75311aea0beff326c Mon Sep 17 00:00:00 2001 From: shimon Date: Thu, 13 Oct 2022 09:27:55 +0300 Subject: [PATCH] static scope to instance --- app/controllers/api/syncs.php | 10 +++--- app/init.php | 60 ++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/app/controllers/api/syncs.php b/app/controllers/api/syncs.php index 850f07600f..e6181de62e 100644 --- a/app/controllers/api/syncs.php +++ b/app/controllers/api/syncs.php @@ -25,11 +25,11 @@ App::post('/v1/syncs') $token = $request->getHeader('authorization'); $token = str_replace(["Bearer"," "], "", $token); $jwt = new JWT(App::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', 900, 10); -// try { -// $payload = $jwt->decode($token); -// } catch (JWTException $error) { -// throw new Exception(Exception::USER_JWT_INVALID, 'Failed to verify JWT. ' . $error->getMessage()); -// } + try { + $payload = $jwt->decode($token); + } catch (JWTException $error) { + throw new Exception(Exception::USER_JWT_INVALID, 'Failed to verify JWT. ' . $error->getMessage()); + } $syncIn = new SyncIn(); foreach ($keys as $key) { diff --git a/app/init.php b/app/init.php index e4c7663133..cd87dd6cc2 100644 --- a/app/init.php +++ b/app/init.php @@ -759,24 +759,6 @@ App::setResource('clients', function ($request, $console, $project) use ($regist 'hostname' => $request->getHostname(), ], Document::SET_TYPE_APPEND); - $register->set('syncOut', function () { - return new SyncOut(); - }); - - cache::on(cache::EVENT_PURGE, function ($key) use ($register) { - $register - ->get('syncOut') - ->addKey($key) - ->trigger(); - }); - - cache::on(cache::EVENT_SAVE, function ($key) use ($register) { - $register - ->get('syncOut') - ->addKey($key) - ->trigger(); - }); - /** * Get All verified client URLs for both console and current projects * + Filter for duplicated entries @@ -945,25 +927,59 @@ App::setResource('console', function () { ]); }, []); -App::setResource('dbForProject', function ($db, $cache, Document $project) { +$register->set('syncOut', function () { + return new SyncOut(); +}); + +App::setResource('dbForProject', function ($db, $cache, Document $project, $register) { + $cache = new Cache(new RedisCache($cache)); + $cache->attach(cache::EVENT_SAVE, function ($key) use ($register) { + $register + ->get('syncOut') + ->addKey($key) + ->trigger(); + }); + + $cache->attach(cache::EVENT_PURGE, function ($key) use ($register) { + $register + ->get('syncOut') + ->addKey($key) + ->trigger(); + }); + $database = new Database(new MariaDB($db), $cache); $database->setDefaultDatabase(App::getEnv('_APP_DB_SCHEMA', 'appwrite')); $database->setNamespace("_{$project->getInternalId()}"); return $database; -}, ['db', 'cache', 'project']); +}, ['db', 'cache', 'project', 'register']); + +App::setResource('dbForConsole', function ($db, $cache, $register) { -App::setResource('dbForConsole', function ($db, $cache) { $cache = new Cache(new RedisCache($cache)); + $cache->attach(cache::EVENT_SAVE, function ($key) use ($register) { + $register + ->get('syncOut') + ->addKey($key) + ->trigger(); + }); + + $cache->attach(cache::EVENT_PURGE, function ($key) use ($register) { + $register + ->get('syncOut') + ->addKey($key) + ->trigger(); + }); + $database = new Database(new MariaDB($db), $cache); $database->setDefaultDatabase(App::getEnv('_APP_DB_SCHEMA', 'appwrite')); $database->setNamespace('_console'); return $database; -}, ['db', 'cache']); +}, ['db', 'cache', 'register']); App::setResource('deviceLocal', function () {